2010-10-09 56 views
3

說我有以下的jQuery的事件處理程序:如何解綁了通過jQuery約束不使用jQuery

$('#myelement').bind('click', foo); 

我怎麼能拆散這一事件,而不使用jQuery?

事件在任何這些方法的DOM元素上顯示不出來:

var domElement = document.getElementById('myelement'); 
domElement.onclick // == null 
domElement.click // == undefined 

所以,我怎麼能拆散它不使用jQuery比如下面?

$('#myelement').unbind() 
+0

純粹出於好奇,你爲什麼要這麼做? – Ender 2010-10-09 22:03:00

+0

@Ender:小書籤 – Senseful 2010-10-09 22:03:59

回答

2

如果您使用的是最新的jQuery的版本,這將工作:

delete $.cache[document.getElementById("myelement")[$.expando]].events.click; 

You can test it here

請注意,它不是一個完整的清理,你可以使用jQuery的.removeEvent()實現,如果你想清除所有的處理程序。

+0

想象一下沒有jQuery的世界...... :) – Alec 2010-10-09 22:00:14

+0

這是有效的。不過,使用'jQuery'變量而不是'$'更好嗎?另外,是不是有辦法禁用jQuery鉤入元素的事件? – Senseful 2010-10-09 22:01:04

+0

@Senseful - 無論是變量的工作原理,我使用'$'爲了簡潔,使用jQuery是安全的:)對於第二個問題...我不確定你在問什麼,你想阻止它綁定在第一個地點? – 2010-10-09 22:04:12