2010-06-01 15 views
7

Belirli bir kapsayıcının içindeki tüm öğeler için tüm olay işleyicilerini çözmeyi deniyorum. DIV gibi. Ancak bu olaylar jQuery kullanılmadığından bağlanmış/kaydedilmiş. Bazıları manuel olarak onclick="...." ile veya normal yerel JavaScript kullanarak bağlanır.jQuery .unbind() yöntemi yalnızca jQuery tarafından oluşturulan etkinliklerde çalışır mı?

Ama bu

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

gibi bir şey yapınca işe görünmüyor. Bu da bana .unbind() öğesinin yalnızca jQuery tarafından orijinal olarak bağlanmışsa çalışacağına inanmamı sağlar.

Bu doğru mu? Tüm olayları bir grup unsurdan çözmenin başka bir yolu var mı?

Teşekkürler!

cevap

7

Haklısınız. API gibi:

.bind ile bağlı olan herhangi bir işleyici() .unbind ile giderilebilir().

3

Hep yapabilirsiniz:

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

vb tüm uygun olay türleri için. Ciltten Çıkar yalnızca jQuery üzerinde çalışacak

+0

önerinizi Yoruldum ... ne yazık ki işe yaramadı – 7wp

+0

benim için çalışıyor - bu sınama sayfası bakın: http://gutfullofbeer.net/unbind.html - boş bir dize ile boş bir dize ile boş bir dize yerine bir null yerine attr() 'ı çağırabilirsiniz! – Pointy

3

yapar tüm yöntemleri gibi olayları oluşturdu (addEventListener ve attachEvent) düğümü, hem eventName, bir argüman olarak ve işleyicisi gerektirir. bind arada sizin için bu saklama dikkat ..

alır DOM0 tarzı olay listerens (.foo = function(...)null gibi başka bir şeye aynı özelliğini ayarlayarak kaldırıldı sadece tarafından.

İlgili konular