JS—DOM—为元素绑定事件的引入,为元素绑定多个代码,兼容代码

By | 2019年12月9日

 

1. 为元素绑定事件的引入:

用src直接绑定多个,只实现最后一个(programmer2.js)

<input type="button" value="按钮" id="btn"/>
<script src="common.js"></script>
<script src="programmer1.js"></script>
<script src="programmer2.js"></script>
<script>


  my$("btn").onclick=function () {
    console.log("小杨好帅哦");
  };
</script>

 

2. 为元素绑定多个事件

为元素绑定事件(DOM) :一种, 但是不兼容, 所以还是有两种

1. 对象.addEventListener("事件类型", 事件处理函数, false); —–>谷歌和火狐支持, IE8不支持
2. 对象.attachEvent("有on的事件类型", 事件处理函数)  —–>谷歌不支持, 火狐不支持, IE8支持
 
 
 
 

2.1 对象.addEventListener("事件类型", 事件处理函数, false); —–>谷歌和火狐支持, IE8不支持

 
案例:为按钮绑定点击事件
  1.   参数1:事件的类型—事件的名字,没有on
  2.   参数2:事件处理函数—函数(命名函数,匿名函数)
  3.   参数3:布尔类型,目前就写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.2 对象.attachEvent("有on的事件类型", 事件处理函数)  —–>谷歌不支持, 火狐不支持, IE8支持

  1.   参数1:事件类型—事件名字,有on
  2.   参数2:事件处理函数—函数(命名函数,匿名函数)
    my$("btn").attachEvent("onclick", function () {
      console.log("小杨好帅哦1");
    });

    my$("btn").attachEvent("onclick", function () {
      console.log("小杨好帅哦2");
    });

    my$("btn").attachEvent("onclick", function () {
      console.log("小杨好帅哦3");
    });

 

3. 为元素绑定事件的兼容代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>

</head>
<body>
<input type="button" value="按钮" id="btn"/>
<script src="common.js"></script>
<script>

  //为任意元素.绑定任意的事件, 任意的元素,事件的类型,事件处理函数
  function addEventListener(element,type,fn) {
    //判断浏览器是否支持这个方法
    if(element.addEventListener){
      element.addEventListener(type,fn,false);
    }else if(element.attachEvent){
      element.attachEvent("on"+type,fn);
    }else{
      element["on"+type]=fn;
    }
  }

  addEventListener(my$("btn"),"click",function () {
    console.log("哦1");
  });
  addEventListener(my$("btn"),"click",function () {
    console.log("哦2");
  });
  addEventListener(my$("btn"),"click",function () {
    console.log("哦3");
  });


</script>
</body>
</html>

 

 

 

 

发表评论