2009-09-23 14 views
18

मैं एक तरह से एक पृष्ठ पर सभी तत्वों, एक निर्दिष्ट डोम स्थान के साथ उन लोगों को छोड़कर चयन करने के लिए की तलाश में हूँ .. यहाँ मैं क्या करना चाहते हैं क्या का एक उदाहरण है:jQuery: ___ को छोड़कर सभी को लक्षित करें?

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

एक में यह संभव है "देशी jQuery" रास्ता? बचाव के लिए

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

उत्तर

30

आप :not() चयनकर्ता का उपयोग करना चाहते हैं!

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

आह, मैं में तारे का चिह्न लगता है कि मेरी उदाहरण शायद अनावश्यक है। –

+0

हां यह है - यह उदाहरण तारांकन के साथ या उसके बिना काम करता है। –

+1

अब इसे देखकर, मुझे लगता है कि मैं तारांकन के बिना पसंद करता हूं। –

23

एक और तरीका है, आप पहले से ही दोनों के लिए चयनकर्ताओं अगर:

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

इसके अलावा, more filters

2

दूसरी तरफ, पृष्ठ पर प्रत्येक तत्व के साथ कुछ करने के लिए कुछ भी बुरा है। एक बेहतर तरीका है। मैं कुछ तत्वों पर शरीर के लिए बाध्यकारी तो अनदेखी क्लिक्स की सिफारिश करेंगे:

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

... या jQuery 1.3 के .live() है, जो आप के लिए ऐसा करता है का उपयोग करते हुए:

$(":not(.ignore)").live(function(e){ 
    ... 
}); 
संबंधित मुद्दे