如何使用JavaScript在IE 6 7 8 9中分离事件 [英] How to detach event in IE 6 7 8 9 using JavaScript
本文介绍了如何使用JavaScript在IE 6 7 8 9中分离事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是部分代码,而不是完整版。
This is a partial code, not the full version.
当鼠标悬停时,我有一个突出显示特定html元素的荧光笔
。
我还有点击事件和监听器
。
我的问题是:突出显示器事件/监听器
在使用 Internet Explorer
v6 v7 v8 v9
My problem is : the highlighter event/listener
does not detach when using Internet Explorer
v6 v7 v8 v9
我做错了什么?
这是我如何附加事件并开始事件监听器:
this is how i attach the event and start the event listener:
if (document.body.addEventListener) {
//alert(11);
document.body.addEventListener('mousemove', handler, false);
} else if (document.body.attachEvent) {
//alert(12);
var ff=function(e) {
return handler(e || window.event);
};
//alert(ff);
document.body.attachEvent('onmousemove', ff);
} else {
//alert(13);
document.body.onmousemove = handler;
}
这是我停止onmousemove / mouse事件/监听器的方式:
this is how i stop the onmousemove/mouse event/listener :
if (document.body.removeEventListener) {
document.body.removeEventListener('mousemove', handler, false);
} else if (document.body.detachEvent) {
document.body.detachEvent('onmousemove', function(e) {
return handler(e || window.event);
});
} else {
document.body.removeAttribute("onmousemove");
}
这就是我停止onclick / click事件/监听器的方式:
this is how i stop the onclick/click event/listener:
if (document.body.removeEventListener) {
document.body.removeEventListener('click', ClosetAffairHighlighter.highlightClick, false);
} else if (document.body.detachEvent) {
document.body.detachEvent('onclick', ClosetAffairHighlighter.highlightClick);
} else {
document.body.removeAttribute("onclick");
}
推荐答案
基于这篇文章,一个跨浏览器的事件处理程序可以是:
base on this article, a cross-browser event handler can be :
var EventUtil = {
addHandler: function(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
removeHandler: function(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}
};
这篇关于如何使用JavaScript在IE 6 7 8 9中分离事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文