2014-04-10 143 views
0

是否有可能刪除對象上的所有事件偵聽器,即使是那些在外部聲明的事件偵聽器,我在http://jsfiddle.net/E5n7g上有以下代碼。刪除DOM對象上的所有事件偵聽器

我用的是內置的

addEventListener() 

對「標籤」添加事件,然後我嘗試使用jQuery刪除此,但它似乎jQuery的只能解除綁定事件其本身的約束。

我問這個問題的原因是因爲我試圖將jQuery與使用Dojo的產品結合使用。當我綁定「click」事件時,它被添加到事件處理程序列表中,但是每當我單擊該鏈接時,它都會刪除該事件處理程序,並且只會使Dojo完好無損。

回答

1

我發現我使用的一種方法(並且工作得相當好)是cloneNode函數。

var new_el = el.cloneNode(true); //true means a deep copy 
el.parentNode.replaceChild(new_el,el); 

當您克隆元素時,它不克隆任何事件。

+0

將preventDefault(),stopPropagation()和unbind()將適用於此要求? – Jesse

+0

@ jesse好,防止事件會阻止它,但它不會解除它。解綁只能用於jQuery附加的綁定事件,而不是DOM事件。 –

+0

是的,我看到,removeEventListener可以清除事件listen,並且該參數必須與addEventListener相似。 **網址:** http://jsfiddle.net/E5n7g/2/ – Jesse

相關問題