兼容8事件绑定与解绑addEventListener、removeEventListener和ie的attachEvent、detachEvent

2017-01-08 09:10 出处:360java.com 作者:360java  阅读()
;( function (){ // 事件绑定 bindHandler = ( function () { if (window.addEventListener) { // 标准浏览器 return function (elem, type, handler) { // elem:DOM节点 type:事件类型 handler:事件处理函数 // 最后一个参数为
;(function(){
            // 事件绑定
            bindHandler = (function() {
                if (window.addEventListener) {// 标准浏览器
                    return function(elem, type, handler) {
                        // elem:DOM节点    type:事件类型   handler:事件处理函数
                        // 最后一个参数为true:在捕获阶段调用事件处理程序;为false:在冒泡阶段调用事件处理程序。注意:ie没有这个参数
                        elem.addEventListener(type, handler, false);
                    }
                } else if (window.attachEvent) {// IE浏览器
                    return function(elem, type, handler) {
                        elem.attachEvent("on" + type, handler);
                    }
                }
            }());

            // 事件解绑
            removeHandler = (function() {
                if (window.removeEventListener) {// 标准浏览器
                    return function(elem, type, handler) {
                        elem.removeEventListener(type, handler, false);
                    }
                } else if (window.detachEvent) {// IE浏览器
                    return function(elem, type, handler) {
                        elem.detachEvent("on" + type, handler);
                    }
                }
            }());
        }());

  以上便是已封装好了的兼容ie8的事件绑定与解绑函数。方法比较简单,不需要特殊说明。

  第一行和最后一行,有些童鞋可能不太理解。用一个匿名函数包裹是为了避免污染命名空间。开头一个分号是为了区分代码段。这样可以使代码清晰、简明、便于维护。

分享到:
本文标签: 兼容, 事件, 绑定, 解绑, addEventList, r

相关文章

发表评论(共条评论)愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

Copyright (C) java学习 360java 360java.com, All Rights Reserved.

苏ICP备16022210号