如果页面上已经存在Jquery Live()函数需要禁用/取消绑定,那么我有这种情况。
假设我有两个组件,每个组件都是一个jsp,并且都具有相同的javascript功能。
JS:
(function(a) {
a(function() {
a(".show").live(
"click", function(){
}); })(jQuery);
如果我拖放第一个组件它工作正常但是当我删除第二个组件时...现有的组件功能不起作用,因为它有重复的JS和选择器..
当我拖放时,有没有办法可以解除绑定或禁用第二个组件的jquery live()。
感谢您的帮助......
答案 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}}的原因。