2013-01-23 23 views
5

हाल ही में मुझे jQuery के साथ कुछ समस्याएं हैं। चलो बस का कहना है कि मैं इस तरह के तत्व हैं:jQuery बच्चे की घटना ट्रिगर होने पर माता-पिता की घटना को ट्रिगर करने से रोकें

<div id="parent1" class="parent"> 
    <div id="child1" class="children"> 
     <a href="" id="child_link1" class="child_link"></a> 
    </div> 
</div> 

और मैं इस तरह jQuery समारोह है:

$(".parent").click(function(){ 
    alert("parent is clicked"); 
}); 

$(".child_link").click(function(){ 
    alert("child link is clicked"); 
}); 

अगर मैं child_link क्लिक करें, माता-पिता भी प्रारंभ नहीं होगा। मैं एक स्थिति कैसे बना सकता हूं जहां मैं child_link पर क्लिक करता हूं, तो पैरेंट ट्रिगर नहीं किया जाएगा?

उत्तर

9

आप, बच्चे क्लिक करें घटना पर प्रचार को रोकने के लिए की जरूरत है इस तरह:

$(".child_link").click(function(e) { 
    e.stopPropagation(); 
    alert("child link is clicked"); 
}); 

Example fiddle

+0

उत्तर के लिए धन्यवाद,: तो यहाँ आप .stopPropagation(); उपयोग करना होगा। यह केवल शीर्ष पृष्ठ पर कुछ भी नहीं कर रहा था। –

+0

क्या आपको समारोह में ईवेंट को पास करना याद आया? '.click (फ़ंक्शन (ई) {' <- वहां –

4
बच्चे के लिए

ईवेंट हैंडलर इसलिए की तरह लिखा जाना चाहिए:

$(".child_link").click(function(event){ 
    event.stopPropagation(); 
    alert("child link is clicked"); 
}); 

यह होगा event bubbling रोकें, और अभिभावक के ईवेंट हैंडलर को कॉल नहीं किया जाएगा।

+0

उत्तर के लिए धन्यवाद, मैंने स्टॉपप्रॉपैगेशन का उपयोग करने की कोशिश की लेकिन दुर्भाग्य से, यहां तक ​​कि child_link ईवेंट ट्रिगर नहीं हुआ था। यह केवल शीर्ष पृष्ठ पर कुछ भी नहीं कर रहा था। –

4

देखें कि आपका ईवेंट अपने माता-पिता को बुलबुला कर रहा है। मैं stopPropagation उपयोग करने की कोशिश लेकिन दुर्भाग्य से, यहां तक ​​कि child_link ईवेंट को ट्रिगर नहीं कर रहा था

$(".child_link").click(function(ev){ 
    ev.stopPropagation(); //<----------------this stops the event to bubble up 
    alert("child link is clicked"); 
}); 
+0

कारण डाउनवोट? plz share। – Jai

+1

मुझे नहीं पता कि मतदान कौन कर रहा है। मैंने आपको क्षतिपूर्ति करने के लिए वोट दिया है :) –

+1

आप भी इसका हकदार हैं। :) – Jai

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