我有一个触发付款的点击。我正在使用 .One 方法来禁止进一步点击,但如果付款被拒绝,我想重新启用点击以再次尝试 - 当然是再试一次。并让这种情况再次发生,以防再次下降。
$(".pay").one("click", function(event){
...//payment code executes
});
Ajax
$.ajax({
...
success: function(data){
$('.pay').html(data); //comes back declined. Re-enable .one click again.
}
最佳答案
我会说,最好的方法是:
- 添加类(class)。
- 检查类是否存在,然后不执行。
- 触发 AJAX 调用。
- 删除类。
这就是禁用的工作原理。
这个更好用:
.addClass();
.removeClass();
比一次又一次地编写整个函数,复制代码。
更新:如果 DOM 操作更难或成本更高,最好使用 $.data(element, key, value) 将上下文敏感值存储为键值对;
方法并设置执行标志。
示例
根据要求添加...
$(".pay").on("click", function (event) {
if ($(this).hasClass("stop"))
return false;
$(this).addClass("stop");
// Other codes to follow.
});
$.ajax({
//...
success: function (data) {
$('.pay').html(data) //comes back declined. Re-enable .one click again.
.removeClass("stop"); // remove the class that disables.
}
});
关于javascript - 允许 jquery .One 方法在 Ajax 调用后再次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40711485/