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;
        }
      }
  • 相关阅读:
    UWP Xaml设计器中输入特殊字符
    UWP DEP0700: 应用程序注册失败。[0x80073CF9] Install failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CF9)
    UWP 使用Windows.Media.FaceAnalysis.FaceDetector检测人脸
    .Net Core和.Net Standard直观理解
    双屏互动h5
    前端发展趋势与开发技巧
    git学习总结
    前端路由
    【react开发】使用swiper插件,loop:true时产生的问题解决方案
    【纪念】我的大学同学名单
  • 原文地址:https://www.cnblogs.com/wanguofeng/p/10566609.html
Copyright © 2011-2022 走看看