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

Sou*_*jee 5 javascript ajax jquery

我正在使用类似的语法

$("body").on("click", ".className", function(){
    // some code
});
Run Code Online (Sandbox Code Playgroud)

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

然后我将代码转换为

$("body").off("click", ".className").on("click", ".className", function(){
    // some code
});
Run Code Online (Sandbox Code Playgroud)

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

不确定这是一个有效的问题,还是我能够清楚地解释它.

Ant*_*ton 2

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

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

    function loadpage() {
        //ajax call
    }
    loadpage();
});
Run Code Online (Sandbox Code Playgroud)

尝试将事件委托置于加载页面函数之外