多次调用jquery事件处理程序

多次调用jquery事件处理程序,jquery,events,Jquery,Events,注册一个click事件,如下所示,当在一个页面中单击一次空白时,处理程序被调用5次。我以为会有人叫它一次 $(document).click(function(event) { console.log(event.target); }); 有人能解释一下吗?谢谢。您可能正在加载代码5次。你是怎么把它写在你的网页上的?(编辑要回答的问题)尝试以下方法: $(文档).on('click',函数(e){ console.log(如target); });jQuery.cli

注册一个click事件,如下所示,当在一个页面中单击一次空白时,处理程序被调用5次。我以为会有人叫它一次

$(document).click(function(event) {
        console.log(event.target);
    });

有人能解释一下吗?谢谢。

您可能正在加载代码5次。你是怎么把它写在你的网页上的?(编辑要回答的问题)

尝试以下方法:

$(文档).on('click',函数(e){
console.log(如target);
});
jQuery
.click()
eventHandler在每次单击时设置一个新的事件处理程序(而不是像您期望的那样替换)

您应该能够通过解除绑定,然后重新绑定事件处理程序来解决此问题:

$(document).unbind('click').click(function(event) {
//...//
});
[编辑]

.unbind()
事件处理程序已折旧。。。所以上面应该是这样的:

$(document).off('click').on('click', function(event) {
// do things //
 });

那段代码再现了你的问题吗?如果没有,你能提供一个这样做吗?不能从你的代码片段中复制它。如果没有更多信息,这个问题是无法回答的(除了胡乱猜测),因为三行代码本身不会导致这个问题。这与OP的代码没有什么不同
.click(…)
只是
.on(“click”,…)
的别名。虽然这是一个猜测,但似乎是一个合理的猜测。我将赌注押在多个文件中包含代码的框架资产上。它可能会被注册多次。每次ajax更新元素时,都会注册事件。我应该使用$(document).off(单击,func)删除以前注册的处理程序。谢谢