【问题标题】:Cancel window event if node event is also triggered如果节点事件也被触发,则取消窗口事件
【发布时间】:2019-03-04 20:13:27
【问题描述】:

我有一种情况,我必须将'onmouseup' 事件附加到窗口。除了在节点上单击时,单击向上应该在屏幕上的任何地方运行一个功能。在该特定节点上还有另一个 'onmouseup' 事件处理程序,所以目前我可以运行这两个函数或只运行一个窗口(通过调用 stopPropagation)。

我需要取消附加到窗口的事件并在节点上运行它。

【问题讨论】:

    标签: javascript html event-handling mouseevent dom-events


    【解决方案1】:

    window.onmouseup = (e) => console.log('window mouseup');
    
    nestedMouseUp = (e) => {
      console.log('nestedMouseUp');
      e.stopPropagation();
    }
    .a {
      background: blue;
      width: 100px;
      height: 100px;
    }
    
    .b {
      background: pink;
    }
    <div class="a" >
      wrapper
      <div class="b" onmouseup="nestedMouseUp(event)">
      nested
      </div>
    </div>

    【讨论】:

    • 是的,谢谢。我只是忘了不要停止窗口事件处理程序中的传播,所以它从来没有到达 div onmouseup 处理程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多