我怎样才能阻止 JavaScript 函数
2013-09-11
73
我有两个元素:
<div class="a" onclick="a();">a
<div class="b" onclick="b();">b</div>
</div>
当我单击 a 时,只会显示警报 a,但是当我单击 b 时,我只想看到警报 b。
我认为这个例子更好地解释了我。
http://jsbin.com/Aruciyi/1/edit?html,css,js,output
例如,如何通过单击红色块来获取警报 b...
2个回答
使用
event.stopPropagation
,如下所示:
function b(event){
event = event || window.event;
event.stopPropagation();
alert('b');
}
这会将点击事件捕获在内部 div 中,并阻止其冒泡到外部 div。
另外:像这样更改您的 onclick 属性:
<div class="b" onclick="b(event);">b</div>
因此,您明确将
event
对象传递给
b
函数。
2013-09-11
提供的答案有效,但我更喜欢创建一个通用的点击函数。我将您的类更改为 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();
}
这是一个 演示
Graham Walters
2013-09-11