2012-06-20 14 views
7

यदि मेरे पास एक मूल div है जो पूरी तरह से स्थित है और फिर एक बच्चा div जिसमें उच्च जेड-इंडेक्स है और अपेक्षाकृत स्थित है, तो केवल एक क्लिक इवेंट रजिस्टर करने का कोई तरीका है अगर माता-पिता div पर क्लिक किया गया है, लेकिन अंदरूनी div नहीं है?अभिभावक क्लिक पर ट्रिगर घटना, लेकिन बच्चों पर नहीं

Relevant jsFiddle

Updated fiddle with text input example

उत्तर

13
$(".parent").click(function(e) { 
    if (e.target == this) { 
     $(this).hide(); 
    } 
});​ 

डेमो:http://jsfiddle.net/Bt5HA/4/

+0

आह! खूबसूरती से सरल, धन्यवाद। –

+0

@ क्रिस्टियनबेन्कासा आपका स्वागत है :) – VisioN

+0

http://stackoverflow.com/a/11124083/601179 – gdoron

0

को बदलें:

$('.child a').click(function(e) { 
    $(this).parent('.child').hide(); 
});​ 
+0

है कि अगर बच्चे को क्लिक किया जाता है की कोशिश करो। क्या होता है यदि माता-पिता पर क्लिक किया जाता है? – j08691

0

पहुँच बच्चे तत्वों और अवास्तविक लौटाते ताकि उन पर क्लिक कर रहे हैं http://jsfiddle.net/Bt5HA/3/

+2

VisioN का सबसे अच्छा समाधान है, इस पोस्ट को अनदेखा करें – xCander

0

यह

$('#child').click(function(event) { 
event.stopPropagation(); 
alert('You clicked Child'); 
}); 


$('#parent').click(function() { 
alert('You clicked on Parent'); 
}); 

आप देख सकते हैं यहाँ काम ही काम करता है http://jsfiddle.net/VnHGh/24/

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