我想自定义一个类似于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的那部分知识点?原型链吗?
求大牛指点一二.
想要达到的效果是
比如我定义了一个 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的那部分知识点?原型链吗?
求大牛指点一二.