2009-02-25 7 views
6

मैं ऐसी साइट बनाने की कोशिश कर रहा हूं जहां उपयोगकर्ता अपने सीएसएस को संपादित करने के लिए किसी भी तत्व पर क्लिक कर सके। मैं सभी lis, divs और uls पर क्लिक फ़ंक्शन जोड़ने के लिए निम्न का उपयोग करता हूं। अगर मैं एक li तत्व पर क्लिक करें, तो मैं उस के लिए चेतावनी मिलता है, और इसे नीचे किसी भी तत्वक्या शीर्ष तत्व पर jQuery.click ट्रिगर होना संभव है?

$('li,div,ul').click(function() { 

alert(this.id); 

}); 

समस्या है। (सभी कंटेनर)।

क्या क्लिक होने पर केवल शीर्ष तत्व ट्रिगर होना संभव है?

उत्तर

17

आप ईवेंट प्रचार को रोकना चाहते हैं, तो आप ईवेंट ऑब्जेक्ट पर stopPropagation विधि को कॉल करके jQuery में ऐसा करते हैं।

$('li,div,ul').click(function (e) { 
    e.stopPropagation(); 
    alert(this.id); 
}); 
1

मुझे विश्वास है कि आप स्टॉपप्रॉपैगेशन() का उपयोग करना चाहते हैं; क्लिक फ़ंक्शन के अंदर।

1

यह मुझे लगता है जैसे आप .stopPropagation() देख रहे हैं। कॉलिंग स्टॉपप्रॉपैगेशन घटना को "बुलबुले" से लेकर मूल कंटेनरों तक रोक देगा।

संबंधित मुद्दे