2009-09-23 21 views
18
Ben belirtilen DOM konuma sahip olanlar hariç bir sayfadaki tüm öğeleri seçmek için bir yol arıyorum

.. İşte ben yapmak istiyorum ne bir örnek:jQuery: Hedef hariç hepsi hariç?

jQuery('*').except('.ignore').bind('click', function(e) { ... }); 

bir de bu mümkün mü "Yerel jQuery" yolu? kurtarmaya

jQuery(":not(.ignore)").bind("click", function(e) { ... }); 

cevap

30

Sen :not() seçici kullanmak istiyorum!

$('*:not(.ignore)').bind('click', function(e) { ... }); 
+0

Ah, yıldız işaretinden tahmin benim örnek muhtemelen gereksizdir. –

+0

Evet öyle - bu örnek yıldızla veya yıldızsız olarak çalışıyor. –

+1

Şimdi baktığımda, yıldız işareti olmadan tercih ederim. –

23

başka yolu da, zaten her ikisi için seçicileri varsa: Ayrıca

$('.foo').not('.ignore').bind(...); 

, more filters.

2

Diğer taraftan, bir sayfadaki her öğeye eşzamanlı bir şey yapmak kötüdür. Daha iyi bir yol var.

$(document.body).click(function(e){ 
    if($target.closest('.ignore').length) return true; 
    ... 
}); 

... Ya sizin için yapar jQuery 1.3 en .live() kullanarak: Bazı unsurları vücuda bağlama sonra görmezden tıklama öneriyoruz

$(":not(.ignore)").live(function(e){ 
    ... 
});