zoukankan      html  css  js  c++  java
  • Js解决解除多次Ajax请求的事件

        $(‘#health_advice_btn_send’).bind(‘click’,
        function() {…$.comfirmModal(“提示”, “aaa”, true);
            $(“#sure”).bind(‘click’,  function() {
                 …
                 setTimeout(function() {
                    $.ajax({
                        url: ’url’,
                        data: postData,
                        type: ”POST”,
                        dataType: ”JSON”,
                        async: false,
                        success: function(data) {…
                        },
                        error: function(err) {…
                        }
                    });
                },
                1000);
            });
        });

    可以看出来原来的代码是没有任何问题的,但是在查找问题的时候发现,点击提交(并不是sure)在点击确认框取消这个过程会让click在时间上有一个积累,也就是说你点击一次发送就触发一次click事件,就是你点击取消几次就会提交几次。这里很奇怪,明明没有触发#sure绑定的click事件怎么会提交几次。这就是click事件在时间上的积累造成的。

    解决方法:将$("#sure").bind('click',function ()这句代码修改为 $("#sure").unbind('click').bind('click',function ()

    关于unbind

    unbind() 方法移除被选元素的事件处理程序。
    该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行。
    ubind() 适用于任何通过 jQuery 附加的事件处理程序。

  • 相关阅读:
    ConcurrentHashMap源码阅读
    java中Scanner类nextLine()和next()的区别和使用方法
    setuid
    lsattr
    设置umask
    touch
    od
    vi 搜索
    nl
    cat 参数
  • 原文地址:https://www.cnblogs.com/zhengweizhao/p/8491820.html
Copyright © 2011-2022 走看看