如果还触发了节点事件,则取消窗口事件

时间:2019-03-04 20:13:27

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

我遇到必须将'onmouseup'事件附加到窗口的情况。单击鼠标应该在屏幕上的所有位置运行功能,但在节点上单击鼠标除外。在该特定节点上还有另一个'onmouseup'事件处理程序,因此当前我既可以运行两个函数,也可以仅运行一个窗口(通过调用stopPropagation)。

我需要取消附加到窗口的事件,然后在节点上运行该事件。

1 个答案:

答案 0 :(得分: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>