【问题标题】:Stop other onclick events [duplicate]停止其他 onclick 事件 [重复]
【发布时间】: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)

小提琴:https://jsfiddle.net/ae9av150/2/

【问题讨论】:

    标签: javascript


    【解决方案1】:
    <div id="div1" onclick="alert('a');">
    a
    <div id="div2" onclick="alert('b');event.stopPropagation();">
    b
    </div>
    a
    </div>
    

    【讨论】:

      【解决方案2】:
      <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

      【讨论】:

        【解决方案3】:

        这样做。

        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>
        

        【讨论】:

          猜你喜欢
          • 2022-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多