簡體   English   中英

jQuery .unbind()方法只適用於jQuery創建的事件嗎?

[英]Does the jQuery .unbind() method only work on jQuery created events?

我試圖取消綁定特定容器內的所有元素的所有事件處理程序。 像DIV一樣。 但是那些事件已被綁定/注冊而不是使用jQuery。 有些是使用onclick="...."或使用常規本機JavaScript的手動方式綁定的。

但是,當我做這樣的事情

$('#TheDivContainer').find('div,td,tr,tbody,table').unbind();

它似乎不起作用。 這讓我相信.unbind()僅在事件最初由jQuery綁定時才有效。

真的嗎? 是否有另一種解除一組元素中所有事件的方法?

謝謝!

你是對的。 API一樣

任何使用.bind()附加的處理程序都可以使用.unbind()刪除。

你總是可以這樣做:

$('#TheDivContainer').find('div,td,tr,tbody,table')
  .unbind('click')
  .attr('onclick', ''); // edited to change null to ''

適用於所有適當的事件類型。

Unbind只適用於jQuery創建的事件,因為執行此操作的所有方法(addEventListener和attachEvent)都需要將node,eventname handler作為參數。 bind負責為您存儲這些..

順便說一句,DOM0樣式事件偵聽器( .foo = function(...)只能通過將相同的屬性設置為其他類似null來刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM