分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

js中的解绑事件

发布时间:2023-09-06 02:05责任编辑:胡小海关键词:js

//解绑事件:
?/*
?* 注意:用什么方式绑定事件,就应该用对应的方式解绑事件
?* 1.解绑事件
?* 对象.on事件名字=事件处理函数--->绑定事件
?* 对象.on事件名字=null;
?* 2.解绑事件
?* 对象.addEventListener("没有on的事件类型",命名函数,false);---绑定事件
?* 对象.removeEventListener("没有on的事件类型",函数名字,false);
?* 3.解绑事件
?* 对象.attachEvent("on事件类型",命名函数);---绑定事件
?* 对象.detachEvent("on事件类型",函数名字);
?*
?*
?* */

页面

<!DOCTYPE html><html lang="en"><head> ?<meta charset="UTF-8"> ?<title>title</title></head><script >function ?my$(id){return document.getElementById(id);}//设置任意元素的中间的文本内容function setInnnerText(element,text) { ???if(typeof element.textContent=="undefined"){ ???????element.innerText=text; ???}else{ ???????element.textContent=text; ???}}</script><body><input type="button" value="创建一个p" id="btn"/>哈哈哈<input type="button" value="创建二个p" id="btn2"/><div id=‘dv‘> </div></html>

 

绑定和解绑的兼容性代码

<!DOCTYPE html><html lang="en"><head> ?<meta charset="UTF-8"> ?<title>title</title><script >function ?my$(id){return document.getElementById(id);}//设置任意元素的中间的文本内容function setInnnerText(element,text) { ???if(typeof element.textContent=="undefined"){ ???????element.innerText=text; ???}else{ ???????element.textContent=text; ???}}</script></head><body><input type="button" value="按钮" id="btn1"/><input type="button" value="干掉第一个按钮的事件" id="btn2"/><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; ???} ?} ?//解绑事件的兼容 ?//为任意的一个元素,解绑对应的事件 ?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; ???} ?} ?function f1() { ???console.log("第一个"); ?} ?function f2() { ???console.log("第二个"); ?} ?addEventListener(my$("btn1"),"click",f1); ?addEventListener(my$("btn1"),"click",f2); ?my$("btn2").onclick=function () { ???removeEventListener(my$("btn1"),"click",f1); ?};</script></body></html>

  

第一种方式是常用的

my$("btn").onclick=function(){console.log("aa");}my$("btn").onclick=null;

  

第二种方式是常用的(火狐谷歌)

/第二种方式支持谷歌和火狐,不支持ie8 ?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); ?};

  

第三种方式是常用的(IE8)

//第三种支持ie8 ???function f3() { ???console.log("第一个"); ?} ?function f4() { ???console.log("第二个"); ?} ?my$("btn").attachEvent("onclick",f3); ?my$("btn").attachEvent("onclick",f4); ?my$("btn2").onclick=function () { ?????my$("btn").detachEvent("onclick",f3); ?};

  

 

js中的解绑事件

原文地址:https://www.cnblogs.com/liushisaonian/p/9363396.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved