我document.addEventListener('mousedown', ...)
向用户执行了一些视觉反馈。但我也动态创建了elem.addEventListener('click')
的元素,这些元素没有被触发。如果我删除文档mousedown侦听器,则会触发单击元素(或者如果我将文档的mousedown更改为click事件)。为什么这样以及如何解决这个问题?我真的需要文档来处理mousedown,并且仍然可以让元素接收他们的点击/点按事件。
FIDDLE:http://codepen.io/hpet/pen/izpJK 如果取消注释文档mousedown事件,则元素接收单击确定,否则单击元素永远不会被触发。
小提琴更新。取消注释第22/23行(设置位置)不会触发点击事件。
答案 0 :(得分:0)
问题的根本原因是重叠元素。
由于您要在mousedown
处理程序中的方形元素顶部移动圆元素,因此后续的mouseup
事件将在圆圈上触发。由于该事件未在方形元素上触发,因此不会生成click
事件。
如果您必须将圆形元素保留在正方形的顶部,则可以使用pointer-events CSS规则强制鼠标事件进入"通过"圆形元素。