javascript - 允许 jquery .One 方法在 Ajax 调用后再次点击

标签 javascript jquery ajax

我有一个触发付款的点击。我正在使用 .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) 将上下文敏感值存储为键值对; 方法并设置执行标志。

感谢 Soviutadeneo他们的意见。 :D


示例

根据要求添加...

$(".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/

相关文章:

javascript - 获取两个子字符串之间的字符串

javascript - 单击链接时如何打开新选项卡或窗口?

javascript - Jquery - 检测窗口宽度

jquery对xml文档解析错误

javascript - 当 div 固定时保持尺寸

javascript - j_security_check 使用 ajax

javascript - 无法调用 jQuery 函数

Jquery 或 Ajax 下拉 div

asp.net - ajaxtoolkit :CalendarExtender working on one asp. 网络网页,但不在同一站点的其他网页上

javascript - 抽屉菜单在 react native 中不起作用