js 任意元素解绑任意事件的兼容代码小白入门_事件指南攻略

hmtl代码:
解绑事件有三种: 注意:用什么方式绑定事件,就应该用对应的方式解绑事件1.解绑事件(IE 谷歌 火狐都支持 但是得对于的ON事件)对象.on事件名字=事件处理

js 任意元素解绑任意事件的兼容代码小白入门

js 任意元素解绑任意事件的兼容代码小白入门_事件指南攻略

hmtl代码:

<input type="button" value="按钮" id="btn"/>
<input type="button" value="干掉第一个按钮的事件" id="btn2"/>

解绑事件有三种: 注意:用什么方式绑定事件,就应该用对应的方式解绑事件1.解绑事件(IE 谷歌 火狐都支持 但是得对于的ON事件)对象.on事件名字=事件处理函数—>绑定事件对象.on事件名字=null;

 my$("btn").onclick=function () {
   console.log("我猥琐");
 };
 my$("btn2").onclick=function () {
   //1.解绑事件
   my$("btn").onclick=null;
 };

2.解绑事件(谷歌.火狐支持 IE不支持)对象.addEventListener(“没有on的事件类型”,命名函数,false);—绑定事件对象.removeEventListener(“没有on的事件类型”,函数名字,false);

function f1() {
   console.log("第一个");
 }
 function f2() {
   console.log("第二个");
 }

 my$("btn").addEventListener("click",f1,false);
 my$("btn").addEventListener("click",f2,false);

 //点击第二个按钮把第一个按钮的第一个点击事件解绑
 my$("btn2").onclick=function () {
   //解绑事件的时候,需要在绑定事件的时候,使用命名函数
   my$("btn").removeEventListener("click",f1,false);
 };

3.解绑事件(注意这个是ie支持 其他不支持)

对象.attachEvent(“on事件类型”,命名函数);—绑定事件对象.detachEvent(“on事件类型”,函数名字);

function f1() {
    console.log("第一个");
  }
  function f2() {
    console.log("第二个");
  }
  my$("btn").attachEvent("onclick",f1);
  my$("btn").attachEvent("onclick",f2);

  my$("btn2").onclick=function () {
      my$("btn").detachEvent("onclick",f1);
  };

为了解决IE与谷歌 火狐的兼容:

//解绑事件的兼容
  //为任意的一个元素,解绑对应的事件
  //element 元素  type 事件类型 fnName 事件处理的函数
  function removeEventListener(element,type,fnName) {
    if(element.removeEventListener){
      element.removeEventListener(type,fnName,false);
    }else if(element.detachEvent){
      element.detachEvent("on"+type,fnName);
    }else{
      element["on"+type]=null;
    }
  }

 

 

海计划公众号
(0)
上一篇 2020/03/30 16:11
下一篇 2020/03/30 16:11

您可能感兴趣的内容