HTML DOM拖放:当鼠标离开窗口时怎么办?

Ken*_*Ken 7 html drag-and-drop

我正在开发一个网络应用程序,我支持拖动页面,只需观察mousedown/mousemove/mouseup事件.那部分效果很好.

问题是我只是在设计中处理一个特定元素内部的拖动,并且如果用户(意外与否)拖到外面,它会在拖动模式下"卡住".也就是说,鼠标按下,然后鼠标离开窗口,然后鼠标向上,然后鼠标返回到窗口,看起来它仍在拖动,到我的应用程序.

我还没有找到任何方法来解决这个问题 - 即使是"当鼠标重新进入窗口时,鼠标按钮是否向下滑动?" 会工作.

这样的功能是否存在,我只是错过了它?或者我可以在这里使用一些聪明的解决方法吗?

遗留支持对我来说并不重要 - 如果它是一个仅适用于FF3.5/Chr4/Sf4的HTML5解决方案,我很满意.

Rya*_*ell 1

如果元素的 onmouseout 事件触发 mouseup 事件怎么办?

如果您只是使用内联处理程序,请执行以下操作:

<div id='dragElement' onmouseup='alert("stop dragging!")' onblur='this.onmouseup();'></div>
Run Code Online (Sandbox Code Playgroud)

添加到您已经使用的任何事件处理代码中。每当元素失去焦点时,这就会“释放”拖动。不是最干净的代码,但你明白了。