2014-03-01 46 views
2

我有一个简单的场景:我有两个div一个在另一个里面,我希望当我点击子div时只是子div调用,当我点击在父父一个调用,但在下面的例子中,你可以看到当我的孩子点击都是invoked.Here是我的代码:当我点击子元素中的子元素时,我怎样才能让子元素被调用

$(document).ready(function(){ 

$("#t1").click(function(){alert("Parent")}); 
$("#t2").click(function(){alert("child")}); 

});

http://jsfiddle.net/hminaee/hv6dv/

谁能帮助?

+0

'$(文件)。就绪(函数(){ $( “#T1”)点击(函数(){警报( “母公司”)}) ;( });'http://jsfiddle.net/pranavcbalan/hv6dv/1();/ –

+0

您应该在发帖之前尝试研究它 –

+0

[防止父事件处理程序执行]可能的重复(http://stackoverflow.com/questions/1398582/prevent-execution-of-parent-event-handler) –

回答

3

您应该停止活动使用event.stopPropagation()冒泡DOM树(任何父处理程序被通知事件)。尝试:

$(document).ready(function(){ 
    $("#t1").click(function(){alert("Parent")}); 
    $("#t2").click(function(e){e.stopPropagation();alert("child")}); 
}); 

DEMO

+0

谢谢,但现在当我做了在只有父警报执行并警告孩子永远不会执行! –

+0

@HamedMinaee:你有没有检查演示提琴?它的工作正常。 – Unknown

+0

非常感谢很多 –

1

您需要使用e.stopPropagation()这里,以防止点击事件从你的孩子的div #t2 BUBLE了DOM树父DIV #t1

$("#t2").click(function(e){ 
    e.stopPropagation(); 
    alert("child") 
}); 

Updated Fiddle

相关问题