onmousemove=null不会'我不在IE工作

onmousemove = null doesn't work in IE

本文关键字:IE 工作 null 不会 onmousemove      更新时间:2023-09-26

我正试图了解拖动在本机javascript中是如何工作的。经过研究,我做了一个简单的javascript函数。

http://jsfiddle.net/FKM5S/1/

它在所有浏览器上都能正常工作,除了IE!

问题是,即使设置了document.onmousemove = null ,我也可以拖动元素

我甚至不能提供一个循序渐进的用例,因为它是随机发生的。

我在谷歌上查看了其他js示例,它们也有同样的问题。其中之一是http://ratfactor.com/misc/programming/simpledrag/test.html

这是IE的已知问题还是有解决方法?

通常使用document.addEventListener("mousemove", eventHandler)添加事件,使用document.removeEventListener("mousemove", eventHandler)删除事件
第一个参数是事件的类型,第二个参数是处理程序的名称
不幸的是,据我所知,不可能删除匿名处理程序函数或计算处理程序函数。因此,这将不起作用

document.addEventListener("mousemove", function() { eventHandler(); });
document.removeEventListener("mousemove", function() { eventHandler(); });
document.addEventListener("mousemove", getEventHandlerFunc());
document.removeEventListener("mousemove", getEventHandlerFunc());

您必须在document.removeEventListener中提供完全相同的函数对象。

尝试使用document.onmousemove = function(){return false;}

我不得不在IE的body标记上设置onselectstart="return false;"。我认为是它造成了问题。不过我还是不知道。。