我知道 IE 7 和 8 不存在窗口事件mouseup
。我想知道是否有人找到了解决此问题的方法,或者这是否可能。
我目前正在开发一个项目,用户可以单击、拖动以绘制一条线,如果用户在窗口外拖动并松开鼠标,则绘图事务将被取消。
我知道 IE 7 和 8 不存在窗口事件mouseup
。我想知道是否有人找到了解决此问题的方法,或者这是否可能。
我目前正在开发一个项目,用户可以单击、拖动以绘制一条线,如果用户在窗口外拖动并松开鼠标,则绘图事务将被取消。
你的困难听起来更像是从窗口失去了事件的范围。
你在使用 jQuery 吗?使用 jQuery,您还可以标记 mousemove 事件并使用“which”属性来检测按钮是否被按下。当你回到窗口时,它甚至会触发。但是当你在窗外时它不会触发。
或者,您可以使用 $(window).mouseleave 来检测它何时离开窗口。但是,一旦它离开窗口,您就无法检测到更多的鼠标事件(如果它们能够检测到您何时右键单击桌面等,那将是一个可怕的缺陷)。
因此,您在某种程度上受到所有浏览器中的浏览器安全实现的限制,并且无法绕过它......但您可以添加一些围绕事件的工作以提供“类似”的体验。
不是直接的,但我相信这应该有效。
在您的mousemove
事件中,检查Event.buttons
属性。如果为零,则用户必须在窗口外释放鼠标,您可以取消拖动。
我现在正在检查此浏览器的兼容性,因此可以编辑此答案。我的电脑现在很慢!