【发布时间】:2016-05-09 12:56:33
【问题描述】:
如果两个onclick 相互重叠,我想知道如何阻止第二个启动。
例子:
<div id="div1" onclick="alert('a');">
a
<div id="div2" onclick="alert('b');">
b
</div>
a
</div>
如果点击 div2,我希望只有alert(b),而不是之后的alert(a)。
【问题讨论】:
标签: javascript
如果两个onclick 相互重叠,我想知道如何阻止第二个启动。
例子:
<div id="div1" onclick="alert('a');">
a
<div id="div2" onclick="alert('b');">
b
</div>
a
</div>
如果点击 div2,我希望只有alert(b),而不是之后的alert(a)。
【问题讨论】:
标签: javascript
<div id="div1" onclick="alert('a');">
a
<div id="div2" onclick="alert('b');event.stopPropagation();">
b
</div>
a
</div>
【讨论】:
<div id="div1" onclick="alert('a');">
a
<div id="div2" onclick="event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);alert('b');">
b
</div>
a
</div>
参考:http://javascript.info/tutorial/bubbling-and-capturing 对于 IE
【讨论】:
这样做。
window.onload = function() {
document.getElementById("div2").onclick = function(e){
e.stopPropagation();
alert('b');
}
}
HTML
<div id="div1" onclick="alert('a');">
a
<div id="div2">
b
</div>
a
</div>
【讨论】: