原生js为DOM添加方法

来源:互联网 发布:新闻稿用什么软件 编辑:程序博客网 时间:2024/05/21 10:22
原生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);    });
原创粉丝点击