停止其他onclick事件

时间:2016-02-01 06:38:49

标签: javascript

如果两个onclick在彼此之上,我想知道如何阻止第二个发射。

示例:

<div id="div1" onclick="alert('a');">
a
<div id="div2" onclick="alert('b');">
b
</div>
a
</div>

如果点击div2,我希望之后只有alert(b),而不是alert(a)

FIDDLE:https://jsfiddle.net/ae9av150/2/

3 个答案:

答案 0 :(得分:9)

<div id="div1" onclick="alert('a');">
a
<div id="div2" onclick="alert('b');event.stopPropagation();">
b
</div>
a
</div>

答案 1 :(得分:1)

<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&lt; 9,您应该使用event.cancelBubble = true

答案 2 :(得分:0)

这样做。

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>