2011-07-27 115 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()事件。另外值得一提的是,不能阻止直播活動的傳播,而不像使用綁定添加的事件。