1

我有一种情况,如果页面上已经存在 Jquery Live() 函数,则需要禁用/取消绑定。

假设我有两个组件,每个组件都是一个 jsp,并且都具有相同的 javascript 功能。

JS:

(function(a) {
    a(function() {
    a(".show").live(
    "click", function(){

 }); })(jQuery);

如果我拖放第一个组件,它工作正常,但是当我放下第二个组件时......现有组件功能不起作用,因为它有重复的 JS 和选择器..

有没有一种方法可以在拖放时为第二个组件取消绑定或禁用 jquery live()。

感谢你的帮助...

4

1 回答 1

1

要删除使用 创建的绑定.live(),请使用.die()

$(".show").die("click");

如果将事件绑定到命名函数,则可以通过将函数作为第二个参数传递给.die(). 但是由于您绑定到一个匿名函数,因此您不能将其作为参数提供,因此所有使用绑定的点击处理程序.live()都将被删除。

有关详细信息,请参阅http://api.jquery.com/die/。此外,.live()在 jQuery 1.7 中已弃用,并在 1.9 中删除。您应该将代码转换为使用.on().

不过,您可能一开始就不需要这样做。为什么要打.live()多次?你只需要调用一次,它就会应用于匹配选择器的所有元素,即使它们是稍后添加的。这就是使用.live()or.on()而不是的原因.bind()

于 2013-05-14T00:42:51.827 回答