2013-01-11 81 views
0

我創建下面免疫/ Unclikable div嵌套

<body> 
    <div style='border:solid 1px red' onclick='alert("hi")'> 
    Hawaii 
    <div style='border:solid 1px blue;margin:10px;' onclick="alert('haha');return false;">Aloha</div> 
    </div> 
</body> 

嵌套式div像代碼,我想顯示哈哈DIV阿羅哈被點擊,但不bubling到夏威夷的div onclick事件的時候,有沒有實現它的方式?

編輯:我忘了提及我知道事件冒泡,但是有沒有辦法阻止單個元素的冒泡/取消傳播?

+0

請參閱http://stackoverflow.com/questions/5971601/javascript-event-bubling其他許多人 – akonsu

+0

對不起,我忘了提及我知道事件冒泡。但是如果我只是想禁用這個元素的冒泡,可能嗎? – cherhan

+1

我認爲你需要在呼叫警報之後在onclick處理程序中調用stopPropagation(以及任何IE需要)。 – akonsu

回答

1

event.stopPropagation在現代瀏覽器中是如此。

在版本9之前的Internet Explorer中,您需要改爲設置event.cancelBubble = true

例子:

<div style='border:solid 1px blue;margin:10px;' onclick="alert('haha'); event.stopPropagation(); return false;">Aloha</div> 

你可以做很多事情更好,如果你避免把Javascript語言,HTML屬性。

+0

我知道傳播和事件冒泡,是否可以取消一個元素,但不是全部? – cherhan

+0

@cherhan是的,你可以在要取消它的元素的事件處理程序中調用它(或將其設置爲IE)。 – Paulpro