2013-01-11 47 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