我有两个要素:
<div class="a" onclick="a();">a
<div class="b" onclick="b();">b</div>
</div>
当我点击一个警报即将到来时,但当我点击b时,我只想查看警报b。
我认为这个例子更好地解释了我。
http://jsbin.com/Aruciyi/1/edit?html,css,js,output
如示例所示,如何通过单击红色块来获取警报b ...
答案 0 :(得分:2)
使用event.stopPropagation
,如下所示:
function b(event){
event = event || window.event;
event.stopPropagation();
alert('b');
}
这会捕获内部div中的click事件,并防止它冒泡到外部div。
另外:更改你的onclick属性:
<div class="b" onclick="b(event);">b</div>
所以你明确地将event
对象传递给b
函数。
答案 1 :(得分:0)
提供的答案有效,但我更喜欢创建一个通用点击功能。我将您的类更改为ID,以便更容易获取它们。这是代码:
<div id="a" onclick="clickEvent(event, this);">a
<div id="b" onclick="clickEvent(event, this);">b</div>
</div>
JavaScript的:
function clickEvent(e, o) {
alert(o.id);
event = e || window.event;
event.stopPropagation();
}
这是demo