JS的事件绑定深入认识_javascript技巧
一、传统事件模型
传统事件模型中存在局限性。
内联模型以HTML标签属性的形式使用,与HTML混写,这种方式无疑造成了修改以及扩展的问题,已经很少使用了。
脚本模型是将事件处理函数写到js文件中,从页面获取元素进行对应事件函数的绑定以触发执行。但也存在不足之处:
1.一个事件绑定多个事件监听函数,后者将覆盖前者。
2.需要限制重复绑定的情况
3.标准化event对象
二、现代事件绑定
DOM2级事件定义了两个方法用于添加、删除事件:addEventListener()、removeEventListener().他们分别接收三个参数:事件名、函数、冒泡或捕获的布尔值(true表示捕获,false表示冒泡)。
与之对应,IE提供了类似的两个方法attachEvent()和 detachEvent(),但IE的两个方法存在另外的问题:无法传递this对象(IE中的this指向window)可以使用call方法进行对象冒充:
function addEvent(obj,type,fn){ if(typeof obj.addEventListener != 'undefined'){ obj.addEventListener(type,fn,false); }else if(obj.attachEvent != 'undefined'){ obj.attachEvent('on' + type,function(){ fn.call(obj,window.event); }); } };
但由于添加时执行的是匿名函数,因此添加后无法进行删除;另外IE提供方法还会有无法顺序执行绑定事件、存在内存泄漏的问题。
为了解决这一系列的问题,就有必要对方法进行进一步的封装,对其他浏览器使用DOM2级标准进行,对于IE,采用基于传统模式的添加、删除,思路为:
1.添加是使用JS的散列表存储对象事件,为每一个对象事件分配一个ID值,按添加的调用顺序,先判断是否存在相同的处理函数,不存在的话就依次将事件绑定函数添加到散列表中,这样解决了无法顺序执行以及重复添加的问题
2.删除时进行遍历函数匹配的判断,存在则删除
总结:
之前对JS的事件绑定并没有太深的认识,甚至停留在传统事件绑定模型上,对程序实现上还是认识太浅,这次学习封装库这部分内容时,才学习到很多JS上面向对象的应用。虽说类似于JQuery的这样js库已经实现了很好的数据绑定机制的封装效果,但只知其然,不知其所以然还有会有种蒙在鼓里的感觉,亲自去分析一下具体的实现,会有一种豁然开朗的感觉,也体会到,做好一个兼容性、通用性强的程序更要考虑很多内容,解决很多问题,也正在在这些问题中逐渐清楚很多的。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

jquery绑定事件有4种方式,分别为:bind()、live()、delegate()和on()方法;其中bind()方法只能针对已经存在的元素进行事件的绑定,而live()、on()、delegate()均支持未来新添加元素的事件绑定。

在使用UniApp开发应用时,可能会遇到以下错误提示:'xxx'事件未绑定。这是由于UniApp的事件绑定机制导致的,需要正确设置才能解决该问题。一、问题原因在UniApp中,页面组件的事件绑定是通过v-on指令完成的。例如,在模板中添加一个按钮组件:<button@click="onClick">点击我</butto

jQuery是一种流行的JavaScript库,被广泛用于处理Web页面的交互性。其中,事件绑定是jQuery的重要功能之一,通过事件绑定可以实现对用户交互操作的响应。本文将探讨jQuery事件绑定技术,并给出具体的代码示例。一、事件绑定的基本概念事件绑定是指在DOM元素上添加事件监听器,以便在特定事件发生时执行指定的操作。在jQuery中,通过选择器选中需

javascript作为脚本语言, 可以为页面上的元素绑定事件,用于在指定事件发生时能自动调用相应的事件处理程序处理事件。那么怎么给元素添加事件?下面本篇文章给大家介绍一下JS绑定事件三种方式,希望对大家有所帮助!

Vue是一款流行的JavaScript框架,用于构建现代的Web应用程序。在Vue中,我们通常使用指令来实现DOM元素的操作。其中,"click"事件是常用的一个指令之一,然而,在Vue应用程序中,我们经常会遇到"click"事件绑定无效的情况。本文将介绍解决这一问题的方法。检查元素是否存在第一步是确认要绑定"click"事件的元素是否存在。如果元素不存在,

jquery绑定事件的作用:将普通的事件event绑定在DOM节点上,当DOM节点被选中时,将事件与之绑定,方便用户提供相应的操作。jQuery中提供了四种事件绑定方式,分别是bind、live、delegate、on,对应的解除监听的函数分别是unbind、die、undelegate、off。

jQuery是一种流行的JavaScript库,它简化了网页开发中的许多常见任务,其中包括元素选择、DOM操作和事件处理。在jQuery中,事件绑定是非常常见和重要的操作之一。本文将详细探讨jQuery中事件绑定的方法,并通过具体的代码示例来帮助读者更好地理解和应用这些方法。1.bind()方法bind()方法是最传统也是最常用的事件绑定方法之一。它可

Vue是一个流行的JavaScript框架,它采用了数据驱动的思想来简化开发流程。Vue的事件绑定功能是非常强大的,可以对页面中的各种交互进行处理。在Vue的开发过程中,经常会使用到事件绑定函数参数,本文将详细介绍这个功能的使用方法。在Vue中,可以使用v-on指令来绑定事件。v-on指令后面跟着事件名和事件处理函数,例如:<bu
