js绑定事件和解绑事件

发布时间 - 2026-01-11 00:51:31    点击率:

在js中绑定多个事件用到的是两个方法:attachEvent和addEventListener,但是这两个方法又存在差异性

attachEvent方法  只支持IE678,不兼容其他浏览器

addEventListener方法   兼容火狐谷歌,不兼容IE8及以下

addEventListener方法

div.addEventListener('click',fn);

div.addEventListener('click',fn2);
function fn(){ console.log("春雨绵绵"); }

function fn2(){
        console.log("到处潮湿");
      }

attachEvent方法

div.attachEvent('onclick',fn);
div.attachEvent('onclick',fn2);
function fn(){ console.log("春雨绵绵"); }
function fn2(){
        console.log("到处潮湿");
      }

注意点:attachEvent方法绑定的事件是带on的,addEventListener绑定的事件是不带on的

下面我写了一个兼容了IE和火狐谷歌的方法

var div=document.getElementsByTagName("div")[0];
      addEvent('click',div,fn)
      function addEvent(str,ele,fn){
        ele.attachEvent?ele.attachEvent('on'+str,fn):ele.addEventListener(str,fn);
      }
      function fn(){
        console.log("春雨绵绵");
      }

这样就完美的解决了兼容性的问题

有绑定事件的话,那就肯定有解绑事件,但是解绑事件和绑定事件一样,万恶的IE还是会搞特殊化

detachEvent方法  只支持IE678,不兼容其他浏览器

removeEventListener方法   兼容火狐谷歌,不兼容IE8及以下

detachEvent方法写法:

ele.detachEvent("onclick",fn);

removeEventListener的写法:

ele.removeEventListener("click",fn);

下面我写了一个兼容性的方法给大家参考,实现也是很简单

function remove(str,ele,fn){
        ele.detachEvent?ele.detachEvent("on"+str,fn):ele.removeEventListener(str,fn);
      }

注意点:不管是绑定事件attachEvent还是删除事件detachEvent都是要加on的,removeEventListenser和addEventListenser则不需要加on

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持


# js绑定事件的方法  # js解除绑定事件  # JS的事件绑定深入认识  # js事件驱动机制 浏览器兼容处理方法  # 关于JavaScript中事件绑定的方法总结  # js 实现一些跨浏览器的事件方法详解及实例  # 详解javascript事件绑定使用方法  # 兼容浏览器的js事件绑定函数(详解)  # 绑定  # 火狐  # 不兼容  # 写了  # 的是  # 都是  # 那就  # 多个  # 不需要  # 这两个  # 给大家  # 很简单  # 不带  # 解决了  # brush  # class  # pre  # span  # style  # addEventListener 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何生成和使用数据填充?(Seeder和Factory示例)  如何在阿里云高效完成企业建站全流程?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  中山网站推广排名,中山信息港登录入口?  网站制作价目表怎么做,珍爱网婚介费用多少?  大连 网站制作,大连天途有线官网?  JavaScript中的标签模板是什么_它如何扩展字符串功能  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Android 常见的图片加载框架详细介绍  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  使用Dockerfile构建java web环境  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  如何在建站之星网店版论坛获取技术支持?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  如何用PHP快速搭建CMS系统?  浅谈javascript alert和confirm的美化  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel如何实现一对一模型关联?(Eloquent示例)  node.js报错:Cannot find module 'ejs'的解决办法  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  想要更高端的建设网站,这些原则一定要坚持!  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel如何处理CORS跨域请求?(配置示例)  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  如何在云主机快速搭建网站站点?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  MySQL查询结果复制到新表的方法(更新、插入)  如何在景安服务器上快速搭建个人网站?  ,在苏州找工作,上哪个网站比较好?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  EditPlus中的正则表达式 实战(4)  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  利用JavaScript实现拖拽改变元素大小  Python制作简易注册登录系统  Laravel如何使用Gate和Policy进行授权?(权限控制)  googleplay官方入口在哪里_Google Play官方商店快速入口指南  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  教你用AI润色文章,让你的文字表达更专业  详解jQuery停止动画——stop()方法的使用  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  香港服务器建站指南:免备案优势与SEO优化技巧全解析