0

当我在动态页面中使用 jQuerylive函数时(页面通过 Ajax 显示),使用 检测到的按钮事件live是重复的。而且,每次我访问包含这些按钮的页面时,单击都会导致功能执行多次。

我该如何解决这个问题?

4

3 回答 3

1

这意味着您已多次将同一处理程序附加到同一事件。

如果没有代码,就不可能提供进一步的帮助,但我相信你现在知道如何自己修复它了 :-)

于 2012-09-18T07:13:09.373 回答
0

live()您可能(不经意间)在同一个元素上多次重新绑定事件(例如,绑定实时事件的代码重复了多次)。尝试使用one();这只会绑定一次,如果完全相同的事件已经绑定到元素,则不会重新绑定。

示例用法:

$("#foo").one("click", function() {
    //event on click, bind this just once, even if this block of code is repeated
});

假设您使用 将事件绑定到链接单击one(),它只会在每次单击时执行(并继续执行)该操作,但会阻止它在每次单击时触发 xxx 次(xxx 是它被绑定的时间)。

于 2012-09-18T07:46:30.980 回答
0

我建议您使用.on()并且.off()已经.live()被弃用并显示了很多问题

http://api.jquery.com/on/

http://api.jquery.com/off/

http://api.jquery.com/live/

你可以做的是.off()在绑定.on()到元素之前设置,这样我们就可以确保所有以前的事件处理程序都被删除。

由于您没有提供任何代码,我只是猜测您的问题是什么。

我认为在每个 ajax 响应中,DOM 都会随着.live()再次调用的代码而改变,以监听新注入的 DOM 的事件。现在从我之前所说的开始.on(),并且.off()已经开始救援了。调用.off()以确保删除所有现有的事件处理程序,然后通过以下方式重新创建所有事件侦听器.on()

于 2012-09-18T07:18:58.753 回答