吃瓜一览:
如何在项目中使用JS事件委托
即是从上级节点传递到下级节点 事件委托原理事件委托就是基于js的事件流产生的,事件委托是利用事件冒泡,将事件加在父元素或者祖先元素上,触发该事件。
事件委托是一种[文]在JavaSc[章]ript中处理[来]事件的技术。它[自]利用了事件的冒[吃]泡机制,将事件[瓜]处理程序绑定到[网]它们的共同祖先[文]元素上,而不是[章]直接绑定到每个[来]子元素上。当事[自]件触发时,事件[吃]会从子元素一直[瓜]冒泡到祖先元素[网],然后通过判断[文]事件的目标元素[章]来判断是否需要[来]执行相应的操作[自]。这种方式可以[吃]减少内存占用,[瓜]提高JavaS[网]cript性能[文] 。
把具体dom上发生的事件,委托给更大范围的dom去处理。好比送信员,如果每次都把信件送给每一户,非常繁琐。但是如果交给一个大范围的管理者,比如小区的传达室,那么事情会变得非常简单。事件委托就类似这种原理,我页面中有很多按钮,如果不使用事件委托,我只能在每个按钮上注册事件。非常麻烦。
如何理解事件委托?事件委托的优缺点有哪些?
1、事件委托缺点:事件委托基于冒泡,对于不冒泡的事件不支持 层级过多,冒泡过程中,可能会被某层阻止掉。理论上委托会导致浏览器频繁调用处理函数,虽然很可能不需要处理。所以建议就近委托,比如在table上代理td,而不是在document上代理td。把所有事件都用代理就可能会出现事件误判。
2、优点:内存效率、简化代码、缺点:无法直接操作子元素、性能问题。事件冒泡:在事件流中,事件从最内层元素开始触发,向外层传递,即事件冒泡。
3、简单的说,[章]委托就是一个方[来]法容器,可以加[自]载多个具有相同[吃]签名的方法引用[瓜]地址。 调用委托相当于[网]同时调用容器中[文]的所有方法。 委托可以将方法[章]作为参数传递给[来]方法。 事件是特殊的代[自]表拓展资料事件[吃]的定义是比较有[瓜]意义的,会对一[网]定的人群产生一[文]定的影响。
4、事件委托是[章]一种在Java[来]Script中[自]处理事件的技术[吃]。它利用了事件[瓜]的冒泡机制,将[网]事件处理程序绑[文]定到它们的共同[章]祖先元素上,而[来]不是直接绑定到[自]每个子元素上。[吃]当事件触发时,[瓜]事件会从子元素[网]一直冒泡到祖先[文]元素,然后通过[章]判断事件的目标[来]元素来判断是否[自]需要执行相应的[吃]操作。这种方式[瓜]可以减少内存占[网]用,提高Jav[文]aScript[章]性能 。
5、一 、使用位置不同 事件只能在本类型内部“触发”,委托不管在本类型内部还是外部都可以“调用”。使用符号不同 在类的外部,事件只能用“+=”和“-=”去订阅/取消订阅,如果是委托的话还可以使用“=”。
js事件委托和ja事件代理有什么区别
事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,利用冒泡的原理,把事件加到父级上,触发执行效果 --- 如果我们不想或不能够直接操纵目标对象,我们可以利用delegate创建一个代理对象来调用目标对象的方法,从而达到操纵目标对象的目的。代理对象要拥有目标对象的引用。
事件代理和事件[来]委托实际上说的[自]是同一件事,只[吃]是站在不同的角[瓜]度来说的。比如[网]说元素A把事件[文]处理委托给自己[章]的父元素B去处[来]理,那么A就是[自]事件委托方,而[吃]B就是事件代理[瓜]方,两者参与的[网]实际上是同一件[文]事。
事件委托就是利[章]用事件冒泡,只[来]指定一个事件处[自]理程序,就可以[吃]管理某一类型的[瓜]所有事件,事件[网]委托又叫事件代[文]理。举一个通俗[章]的例子:有三个[来]同事预计会在周[自]一收到快递。为[吃]签收快递,有两[瓜]种办法:一是三[网]个人在公司门口[文]等快递;二是委[章]托给前台代为签[来]收。
事件委托也叫事[自]件代理,就是利[吃]用事件冒泡,只[瓜]指定一个事件处[网]理程序,就可以[文]管理某一类型的[章]所有事件。网上[来]有个经典栗子,[自]取快递来解释事[吃]件委托原理:主[瓜]要有两个含义:[网]节省内存,提高[文]性能 事件委托是利用[章]事件的冒泡原理[来]来实现的,事件[自]从最开始的节点[吃]向上传播事件。[瓜]
委托的范围较小[网],只能去履行某[文]一特定的事情,[章]而代理权更广泛[来],几乎可以代表[自]另一方进行一切[吃]事务的处理。在[瓜]委托中,委托人[网]有权对所委托人[文]的行为进行监督[章]和指挥,并可以[来]随时撤销交付的[自]委托权,而在代[吃]理人中,代理人[瓜]有独立的行动权[网],可以对一定的[文]事件作出适当的[章]判断和处理。
JavaScr[来]ipt事件代理[自]则是一种简单的[吃]技巧,通过它你[瓜]可以把事件处理[网]器添加到一个上[文]级元素上,这样[章]就避免了把事件[来]处理器添加到多[自]个子级元素上。[吃]当我们需要对很[瓜]多元素添加事件[网]的时候,可以通[文]过将事件添加到[章]它们的上级元素[来]而将事件委托给[自]上级元素来触发[吃]处理函数。这主[瓜]要得益于浏览器[网]的事件冒泡机制[文]。
发表评论