【发布时间】:2014-04-07 16:27:29
【问题描述】:
我使用的语法类似于
$("body").on("click", ".className", function(){
// some code
});
它工作正常,然后我用 ajax 重新加载了整个页面(没有浏览器刷新),然后事件开始触发两次,另一次刷新 - 触发三次,依此类推。
然后我将代码转换为
$("body").off("click", ".className").on("click", ".className", function(){
// some code
});
它在一定程度上解决了这个问题。即使在此之后,我在某些情况下也会多次开火。有没有办法找出元素上是否存在不止一次绑定的现有“on”事件,将它们全部删除并仅绑定一次?
不确定这是否是一个有效的问题,或者我能够清楚地解释它。
【问题讨论】:
-
每次使用 ajax 加载页面时都会调用该函数吗?
-
在第一次绑定后将
init变量设置为 true,并在再次绑定之前检查该变量。 -
你最好不要将绑定代码包装在任何处理程序/回调中
-
此 JavaScript 是否在 AJAX 内容的内部执行?或者在你的页面上一次?
标签: javascript jquery ajax