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


    ;(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的事件绑定与解绑函数。方法比较简单,不需要特殊说明。

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

  • 相关阅读:
    Jenkins持续集成
    爬豆瓣保存到sqlite3
    爬豆瓣保存到Excel
    sqlite3数据库的增删查改
    用pandas和matplotlib对用户消费行为分析
    TCP请求
    fastjson
    断言
    将结果写入文件
    加解密
  • 原文地址:https://www.cnblogs.com/puyongsong/p/6026981.html
Copyright © 2020-2023  润新知