2011-07-27 64 views
2

我可以使用jQuery unbind()与live()关于解除绑定的jQuery问题

$(".content_media").unbind("touchstart").live("touchstart",function(){....}); 

如果是,那究竟是什么意思?基本上我想明白什么是一个解除绑定的意思

我有一个页面,我在文档上绑定元素准备好了...之间有AJAX callls哪种重写相同的元素...现在我希望他们同样的行为在所有times..which就是为什么我用活的()

请纠正我,如果可以有一些例外情况在这些地方生活()绑定将不会工作。

回答

0

是的,您可以使用unbind()Doclive()Doc,如图所示。

此代码:

$(".content_media").unbind("touchstart").live("touchstart",function(){... 

取消绑定通过jQuery bind()中设置的任何touchstart事件监听器,然后创建touchstart听众对当前和任何未来的节点content_media类。

请注意,要阻止听众设置为live(),您需要使用die()Doc

另外,在jQuery之外设置的监听器并不总是受这些方式的影响。

0

拆散意味着消除事件来自一组元素的处理者。你可以只删除一些事件处理程序

$(".content_media").unbind("click"); 
//it means delete all click handlers on elements with class content_media 

或所有事件处理程序

$(".content_media").unbind() 
//it means delete all handlers on elements with class content_media 

您可以取消绑定它们后,结合新的现场活动,与注重生活()是这样的(从资料为准)

由于.live()方法结合事件处理程序通过 默认记录,就文件调用.unbind()将取消绑定处理程序通过.live(绑定 ),以及。例如,$(document).unbind('click');将 除去$(document).bind('click',fn1),而且还删除$('a.foo')。live('click',fn2)。

0

解除绑定的装置,以除去先前连接到元素的事件处理程序:

从元件中取出先前连接的事件处理程序。

但你不能使用unbind删除的事件处理程序添加live因为live原理不同(它重视的事件处理程序的文档根目录)。

.die()是什么:

删除以前附加的所有事件处理程序使用.live()的元素。

0

我不明白什么是你对取消绑定在这里点..

$(".content_media").unbind("touchstart").live("touchstart",function(){....}); 

好,如果你有功能fn1,然后你把它作为,

$(".content_media").live("touchstart",fn1); 

然后在某些点,你想用fn2而不是fn1之类的,

$(".content_media").live("touchstart",fn2); 

那你先打个电话先解决吧...除去fn1

$(".content_media").unbind("touchstart").live("touchstart",fn2); 

,但如果你只是想fn1那么你没有真正解除绑定使用...

编辑

如果你为什么这样做的原因是因为你叫这条线,

$(".content_media").unbind("touchstart").live("touchstart",function(){....}); 

在每一个ajax执行......那么,证明它... 但你做了错误的方式....

只是把它放在外面AJAX执行并没有取消绑定,那么你是好去...

$(".content_media").live("touchstart",function(){....}); 
0

live()bind()之间的区别是,现场事件冒泡到文档,然后他们由jQuery处理并检查哪些元素触发了该事件。因此,如果您添加了更多与选择器相匹配的元素,而您已经调用了实时,则它们将全部触发事件。

Bind(),但是是元素特定的,你必须手动绑定所有新的元素。从某种意义上说,如果你首先绑定一些元素并添加更多元素(即使匹配了绑定选择器),你将不得不再次绑定它们(但要小心不要将原始元素重新绑定)。

Unbind()bind(),什么die()live()。您只能解除与bind()设置的事件绑定,并且您只能使用live()设置的die()事件。另外值得一提的是,不能阻止直播活动的传播,而不像使用绑定添加的事件。