您的位置:首页 > Web前端 > JavaScript

原生js为DOM添加方法

2017-08-08 16:42 507 查看
原生js为所有dom元素添加一个名为addEvent的方法,类似于jQ的$.fn.extend(addEvent:function(){......});

if (window.HTMLElement) {
// 使用原型扩展DOM自定义事件

HTMLElement.prototype.addEvent = function(type, fn, capture) {
var el = this;
if (window.addEventListener) {
el.addEventListener(type, function(e) {
fn.call(el, e);
}, capture);
} else if (window.attachEvent) {
el.attachEvent("on" + type, function(e) {
fn.call(el, e);
});
}
};
} else {
// 如果是不支持HTMLElement扩展的浏览器
// 通过遍历所有元素扩展DOM事件

var elAll = document.all, lenAll = elAll.length;
for (var iAll=0; iAll<lenAll; iAll+=1) {
elAll[iAll].addEvent = function(type, fn) {
var el = this;
el.attachEvent("on" + type, function(e) {
fn.call(el, e);
});
};
}

}

//--------- 以下是测试代码 -------------

document.getElementById("image").addEvent("click", function() {
alert("这是:" + this.alt);
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息