我有一个正在使用的特定场景click
插入一个div,然后mousedown
在该 div 上拖动它。我已经绑定了click
到父容器,并且mousedown
在 div 本身上。但当我mousedown
在 div 上,它也会触发对父级的单击,因此插入多个 div 而不是拖动已添加的 div!
有办法解决这个问题吗?我无法解绑click
,因为我需要使用添加 2 个 divclick
,然后绑定mousedown
在这些上。
更新:我正在使用selector.on(event, handler)
绑定类型。
试试这个方法。event.stopPropagation
不会阻止鼠标按下后触发单击事件。 mousedown 和 click 事件彼此不相关。
var mousedownFired = false;
$("#id").on('mousedown', function(event) {
mousedownFired = true;
//code
});
$("#id").on('click', function(event) {
if (mousedownFired) {
mousedownFired = false;
return;
}
//code
});
Update:
鼠标事件的触发方式如下:
鼠标按下
click
mouseup
如果 mousedown 被触发,mousedownFired
变量将被设置为true
。然后在点击事件中,就会return
(即不继续处理点击事件),并且mousedownFired
变量将重置为 false,因此将来的单击事件将正常触发。不会考虑两次鼠标按下或两次单击事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)