如何找到一个已经与jQuery绑定的事件

时间:2014-03-05 14:33:59

标签: javascript jquery ajax

我使用的语法如

$("body").on("click", ".className", function(){
    // some code
});

它工作正常,然后我用ajax重新加载整个页面(没有浏览器刷新),然后事件开始两次触发,另一次刷新 - 触发三次等等。

然后我将代码转换为

$("body").off("click", ".className").on("click", ".className", function(){
    // some code
});

它在某种程度上解决了这个问题。即使在此之后,我在某些情况下会多次射击。有没有办法找出元素上是否存在多次绑定的“on”事件,将它们全部删除并仅将其绑定一次?

不确定这是否是一个有效的问题,或者我能够清楚地解释它。

1 个答案:

答案 0 :(得分:2)

如果您每次使用ajax加载页面时都会委托它,它会一次又一次地绑定在body的子.classname上,从而导致不必要的效果

$(function () {
    $("body").on("click", ".className", function () {
        // some code
    });

    function loadpage() {
        //ajax call
    }
    loadpage();
});

尝试将您的事件委托放在loadpage函数之外