我有一个看似微不足道的问题,但找不到原因。有一个最小的html结构:
<div id="bg">
<div id="panel"></div>
<div id="helper"></div>
</div>
元素#helper具有 display:none,在 #panel 上的 mousedown 事件中,我在 #helper 上设置了 dipslay:block。
这个问题可以像这样简要描述:当我单击元素#panel内部时,单击事件总是在元素#bg上触发,尽管所有努力停止#panel上的事件处理程序上的事件传播,#helper。我做了一个密码笔来说明这个问题:
https://codepen.io/tony124/pen/LYpQzwx?editors=1111
当我在#panel之外单击时,我进入控制台:
"onMouseDownBg" "bg" "bg"
"onMouseUpBg" "bg" "bg"
"onClickBg" "bg" "bg"
这是意料之中的。但是,当我点击#panel时,我得到
"onMouseDownPanel (stop)" "panel" "panel"
"onMouseUpHelper (stop)" "helper" "helper"
"onClickBg" "bg" "bg"
我不明白为什么。甚至没有来自onMouseDownBg和noMouseUpBg的日志记录。点击事件是如何触发的?
眼眸繁星
斯蒂芬大帝
相关分类