我使用的语法如
$("body").on("click", ".className", function(){
// some code
});
它工作正常,然后我用ajax重新加载整个页面(没有浏览器刷新),然后事件开始两次触发,另一次刷新 - 触发三次等等。
然后我将代码转换为
$("body").off("click", ".className").on("click", ".className", function(){
// some code
});
它在某种程度上解决了这个问题。即使在此之后,我在某些情况下会多次射击。有没有办法找出元素上是否存在多次绑定的“on”事件,将它们全部删除并仅将其绑定一次?
不确定这是否是一个有效的问题,或者我能够清楚地解释它。
答案 0 :(得分:2)
如果您每次使用ajax加载页面时都会委托它,它会一次又一次地绑定在body的子.classname上,从而导致不必要的效果
$(function () {
$("body").on("click", ".className", function () {
// some code
});
function loadpage() {
//ajax call
}
loadpage();
});
尝试将您的事件委托放在loadpage函数之外