当鼠标按下孩子时取消单击父级

Cancel click on parent when mousedown on child

本文关键字:取消 单击 孩子 鼠标      更新时间:2023-09-26

我读过几篇与此类似的帖子,但没有一个对我有用。

有两个div,一个是另一个的父级:

<parent>
  <son></son>
</parent>
  • "Son"有mousedownmousemovemouseup的事件处理程序。
  • "父"有一个用于click的事件处理程序。
  • ">
  • 父母"比"儿子"大。

要求:

  • 一个人必须能够在"儿子"内鼠标向下移动鼠标向上。[确定]
  • 必须能够单击"父"。[确定]

但是,如果有人将鼠标从"son"中拖出并释放它,则"parent"的单击处理程序将触发。

有什么办法可以避免它吗?

我应该改变我的布局吗?

http://jsfiddle.net/g3qzkz74/17/

(拜托,纯粹的JavaScript!(

你需要

防止"son"click事件冒泡在DOM树上:

function sonClick(e) {
    e.stopPropagation();
}
document.getElementById('son').addEventListener('click', sonClick, false);

演示:http://jsfiddle.net/g3qzkz74/14/