我很困惑if (obj.attachEvent) {...}
块中的代码。我在看这个页面时发现这个例子:http://codebits.glennjones.net/cheatsheet/javascript.htm#events将事件添加到DOM元素时,此代码如何工作?
无论如何,有人可以解释代码在做什么吗?我假设obj
是一个DOM元素,type
是事件的类型(如click
或hover
),而fn
是回调函数。
function addEvent(obj, type, fn) {
if (obj) {
if (obj.attachEvent) {
obj['e' + type + fn] = fn;
obj[type + fn] = function() { obj['e' + type + fn](window.event); };
obj.attachEvent('on' + type, obj[type + fn]);
} else {
obj.addEventListener(type, fn, false);
}
}
};
我总是使用下面的代码做跨浏览器事件附件(没有jQuery)。上述方法是否比我所做的更好?
function attachEvent(element, type, fn) {
if (element.addEventListener) {
element.addEventListener(type, fn, false);
} else if (element.attachEvent) {
element.attachEvent('on' + type, fn);
}
};
有趣...我认为这是有道理的。 – Hristo 2012-01-04 14:14:50