2014-03-01 44 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

相關問題