假设我使用 addEventListener 或 attachEvent(取决于浏览器)向对象添加事件;以后可以以编程方式调用这些事件吗?
使用如下对象添加/删除事件处理程序:
var Event = {
add: function(obj,type,fn) {
if (obj.attachEvent) {
obj.attachEvent('on'+type,fn);
} else {
obj.addEventListener(type,fn,false);
}
},
remove: function(obj,type,fn) {
if (obj.detachEvent) {
obj.detachEvent('on'+type,fn);
} else {
obj.removeEventListener(type,fn,false);
}
}
}
还是我需要存储每个处理程序的副本并只添加一个 Event.invoke(...) 函数?
编辑:另外,jQuery 不是一个选项:D