如果jquery live()已经存在于页面中,如何禁用/解除绑定?

时间:2013-05-14 00:26:55

标签: jquery

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

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

JS:

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

 }); })(jQuery);

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

当我拖放时,有没有办法可以解除绑定或禁用第二个组件的jquery live()。

感谢您的帮助......

1 个答案:

答案 0 :(得分:1)

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

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

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

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

但是,您可能不需要首先执行此操作。你为什么多次打电话给.live()?您只需要调用一次,它将应用于与选择器匹配的所有元素,即使它们稍后添加。这是使用.on().bind()而不是{{1}}的原因。