2010-11-28 4 views
5

में नहीं है, तो मैं ऐसा करने की कोशिश कर रहा हूं लेकिन किसी भी भाग्य को अब तक कोई जानकारी नहीं है कि पर किसी तत्व का चयन कैसे करें, लेकिन .box जैसे विशिष्ट div में तत्वों को शामिल न करें और अंदर की सभी सामग्री कि div .boxjquery क्लिक क्लाइंट पर क्लिक करें यदि यह विशिष्ट वर्ग

छोटे अद्यतन: प्रतिक्रिया के लिए धन्यवाद, लेकिन अगर मैं :not या hasClass उपयोग कर रहा हूँ यह आश्वासन नहीं होगा कि कि foo अंदर तत्वों चयनित नहीं किया जाएगा। जैसे:

<div class=foo>this won't be selected <span>this will</span></div>

उत्तर

8

आप hasClass() विधि इस्तेमाल कर सकते हैं: नहीं() चयनकर्ता:

$('a').click(function() { 
    if (!(this).hasClass('foo')) { 
     // the clicked element doesn't have the foo class   
    } 
    return false; 
}); 
+0

इसके साथ ठीक काम करता है! अगर (! domEl.closest ('div')। हैस्क्लास ('बॉक्स')) – Dejan

+0

मैं इसे jquery ui संवाद के साथ काम करने के लिए नहीं मिल सकता, मुझे लगता है कि ऐसा इसलिए है क्योंकि संवाद कैसे बनाए जाते हैं, प्रदर्शन करते हैं: कोई भी नहीं मैं &&! domEl.closest ('div') का उपयोग नहीं कर सकता। hasClass ('ui-dialog') – Dejan

5

तुम भी उपयोग कर सकते हैं।

$("#mydiv:not(.box)").click(function(){ 
    //do something 
}); 

यदि आप विशिष्ट लक्ष्य तत्वों है, जैसे आप अपने निर्दिष्ट कंटेनर के अंदर <li> लक्षित करना चाहते हैं, तो यह आदर्श होना चाहिए:

$("#mydiv:not(.box)>li").click(function(){ 
    //do something 
}); 

यह केवल <li> लिए क्लिक() समारोह लागू करना चाहिए कंटेनर का बच्चा तत्व .box कक्षा नहीं मिला। , यह काम

1

आप यह मानते हुए एंकर की तलाश कर रहे चाहिए ...

$(":not(.box) a").click(function() { 
    // your code here 
}); 

हालांकि, मैं अपने मार्कअप फिर से बाँटे इस आसान बनाने के लिए सुझाव है। उदाहरण के लिए, आप स्पष्ट रूप से प्रत्येक तत्व पर क्लिक करने योग्य/न जाने योग्य वर्ग डाल सकते हैं।