zoukankan      html  css  js  c++  java
  • JS 为任意元素添加任意事件的兼容代码

    为元素绑定事件(DOM):有两种 addEventListener 和 attachEvent;
     
    相同点: 都可以为元素绑定事件
    不同点:
      1.方法名不一样
      2.参数个数不一样addEventListener三个参数,attachEvent两个参数
      3.addEventListener 谷歌,火狐,IE11支持,IE8不支持
        attachEvent 谷歌火狐不支持,IE11不支持,IE8支持
      4.this不同,addEventListener 中的this是当前绑定事件的对象
        attachEvent中的this是window
      5.addEventListener中事件的类型(事件的名字)没有on
        attachEvent中的事件的类型(事件的名字)有on
     
     
    1 对象.addEventListener("事件类型",事件处理函数,false);
      谷歌和火狐支持,IE8不支持;
        为按钮绑定点击事件
          参数1:事件的类型---事件的名字,没有on
          参数2:事件处理函数---函数(命名函数,匿名函数)
          参数3:Boolean类型,是否使用捕获,一般用false 。(详情请看后面章节的事件阶段)
    //为同一个元素绑定多个相同的事件--
     my$("btn").addEventListener("click",function () {
       console.log("小米一岁了");
     },false);
     my$("btn").addEventListener("click",function () {
       console.log("小米二岁了");
     },false);
     my$("btn").addEventListener("click",function () {
       console.log("小米三岁了");
     },false);
     my$("btn").addEventListener("click",function () {
       console.log("小米四岁了");
     },false);
    2 对象.attachEvent("有on的事件类型",事件处理函数)
      谷歌不支持,火狐不支持,IE8支持;

        参数1:事件类型---事件名字,有on
        参数2:事件处理函数---函数(命名函数,匿名函数)

    my$("btn").attachEvent("onclick",function () {
       console.log("小米一岁了");
     });
    
     my$("btn").attachEvent("onclick",function () {
       console.log("小米二岁了");
     });
    
     my$("btn").attachEvent("onclick",function () {
       console.log("小米三岁了");
     });

    3 为了解决这个兼容的问题:

    //element 为要绑定事情的元素 type 为绑定那种事件 func  事件的处理函数
      function addEventListener(element,type,func) {
        //判断浏览器是否支持这个方法
        if(element.addEventListener){
          element.addEventListener(type,func,false);
        }else if(element.attachEvent){
          element.attachEvent("on"+type,func);
        }else{
          element["on"+type]=func;
        }
      }
  • 相关阅读:
    Daily Scrum 12.9
    成员总结
    反省与深思
    M1事后分析报告--We have power to change the origin state
    PowerTeam--Alpha阶段个人贡献分及转会人员
    Pipeline Alpha版本项目展示
    js 字符串操作函数
    js与jq对数组的操作
    js 与 jq 的节点添加删除实例
    js,jq,css选择器
  • 原文地址:https://www.cnblogs.com/wanguofeng/p/10566609.html
Copyright © 2011-2022 走看看