未正确检测到jQuery鼠标

未正确检测到jQuery鼠标,jquery,events,mousedown,event-propagation,mouseup,Jquery,Events,Mousedown,Event Propagation,Mouseup,我有一个包含span的div。我有一个mouseup和mousedown事件,当按下div时应该触发。但是它不能正常工作 请转到这把小提琴: 如果您选择文本,然后尝试拖动它,它只会检测mousedown事件,而不会检测mouseup 我做错了什么?我用的是Chrome 谢谢 编辑: 抱歉,我简化了问题,请查看新的小提琴。鼠标悬停事件被正确检测;只是在执行拖动之后,浏览器没有触发mouseup事件。这是浏览器的故意行为。如果要包含您现在想要的行为,还应该侦听dragend事件。mouseup事件仅

我有一个包含span的div。我有一个mouseup和mousedown事件,当按下div时应该触发。但是它不能正常工作

请转到这把小提琴:

如果您选择文本,然后尝试拖动它,它只会检测mousedown事件,而不会检测mouseup

我做错了什么?我用的是Chrome

谢谢

编辑:


抱歉,我简化了问题,请查看新的小提琴。

鼠标悬停事件被正确检测;只是在执行拖动之后,浏览器没有触发mouseup事件。这是浏览器的故意行为。如果要包含您现在想要的行为,还应该侦听dragend事件。

mouseup事件仅在orange div内部触发。这就是您编写的代码。试一试这个

如果鼠标不在元素上且鼠标事件附在元素上,为什么会触发鼠标下事件?如果是这样,那么为什么鼠标下事件会触发?为什么鼠标下事件会在什么时候触发?@micha-这会是“绑定”我们的“绑定”,听起来有点尴尬鼠标下事件在div内发生时也不会触发(如预期),正如阿尔瓦罗所指出的。但是,它也不会在div之外开火。使用dragend而不是mouseup,有什么区别吗?当你拖动某个东西时,一些鼠标事件会被拖动事件所取代。也就是说,
mousemove
变成
drag
mouseup
变成
dragend
你会发现从拖动事件传递到处理程序中的JavaScript事件对象与鼠标事件不同,因为拖动事件包含一个名为
dataTransfer
的新对象。感谢这两个对象,谢谢解决方案和解释。我将不得不更深入地查看拖动事件。谢谢。请查看编辑后的问题。您的小提琴显示exa正是我的问题:只有mousedown被解雇,而不是mouseup。