我想自定义一个类似于addEventListener的顶级函数.
想要达到的效果是
比如我定义了一个 addEvent()添加事件的兼容函数我想把它挂在到所有对象里面
然后我抓取一个DOM元素直接给他添加事件
var drop = document.xxxxxx;
drop.addEvent('click',function(){
console.log('click');
})
下面是我写的一个函数就是爆出未定义不知为何.
[code]
(function(window){
Object.prototype.addEvent = function(e,o) {
console.log('1');
if(!window.attachEvent) {
this.addEventListener(e, o, false);
} else {
this.attachEvent('on' + e, o);
}
}
function $(e) {
var cAt = e.charAt(0);
var obj;
if(cAt == '#') {
obj = document.getElementById(e.substring(1));
} else if(cAt == '.') {
obj = document.getElementsByClassName(e.substring(1));
} else {
obj = document.getElementsByTagName(e);
}
obj.prototype = new addEvent;
return obj;
}
window.addEvent('load',function(){
var drop = $('#drop');
drop.addEvent('click',function(){1})
console.log(drop);
}, false);
})(window)
[/code]
这是整齐版的代码:
http://pastie.org/10126119不知道这属于js的那部分知识点?原型链吗?
求大牛指点一二.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/188077
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.