gpt4 book ai didi

javascript - 防止多次点击提交多个 ajax

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:34:16 27 4
gpt4 key购买 nike

我有一个运行此 jQuery 代码的 WordPress 博客,它允许用户单击书签链接,将帖子另存为书签。每个帖子都显示一个总书签计数器,如下所示:“已添加书签 (5)”。尽管这段代码有效,但只要有人多次点击书签链接,它就会记录多次点击,然后将同一篇文章保存为多个书签。当用户试图通过再次点击书签链接来删除书签时,它会再次记录多次点击,并且计数器开始显示负数,看起来像:“Bookmarked (-5)”。

我一直在寻找有关如何防止这种情况发生的说明,以便书签计数器永远不会运行减号,并且用户不能多次为同一篇文章添加书签,但到目前为止没有成功。

这是我正在使用的 jQuery 代码:

jQuery(document).ready( function($) {

var added_message = upb_vars.added_message;
var delete_message = upb_vars.delete_message

$(document).on('click', '.upb_add_bookmark', function () {

var post_id = $(this).attr('rel');
var data = {
action: 'bookmark_post',
post_read: post_id
};
$.post(upb_vars.ajaxurl, data, function(response) {

$('.upb_bookmark_control_'+post_id).toggle();
if($('.upb-bookmarks-list').length > 0 ) {
var bookmark_data = {
action: 'insert_bookmark',
post_id: post_id
};
$.post(upb_vars.ajaxurl, bookmark_data, function(bookmark) {
$(bookmark).appendTo('.upb-bookmarks-list');
$('.no-bookmarks').fadeOut();
});
}
});
return false;
});

$(document).on('click', '.upb_del_bookmark', function () {

var post_id = $(this).attr('rel');
var data = {
action: 'del_bookmark',
del_post_id: post_id
};
$.post(upb_vars.ajaxurl, data, function(response) {
$('.bookmark-'+post_id).fadeOut();
$('.upb_bookmark_control_'+post_id).toggle();
});

return false;
});
});

你能帮我解决这个问题吗?

非常感谢!

最佳答案

一种方法是在 $.post() 之前向您的链接添加一个 .disabled 类。

// Before ajax...
if ($(this).hasClass('disabled')) {
return false;
} else {
$(this).addClass('disabled');
}
// Make sure we refer to the same element
var that = this;

// On post success...
$(that).removeClass('disabled');

关于javascript - 防止多次点击提交多个 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com