浅谈javascript事件委托

简介:

讲解之前先来讲讲性能.

如果一个整体页面里有大量的按钮.我们就要为每一个按钮绑定事件处理程序.这样就会影响性能了.

首先每个函数都是对象,对象就会占用很多内存.内存中的对象越多,性能就越差.

其次,dom访问次数增多,就会导致延迟加载页面.事实上,从如何来利用好事件处理程序,还是有很好的解决方案的.

一、事件委托

对事件处理程序过多的问题解决的方案就是事件委托技术.

事件委托技术利用了事件冒泡.只需指定一个事件处理程序.

我们可以为某个需要触发事件的父元素来绑定事件处理程序.

HTML代码

<div id="aa">aa</div>
    <div id="bb">bb</div>
    <div id="cc">cc</div>
    <div id="dd">dd</div>

现在的情况下 我们用dom获取当前的元素 那么要写四次 这样就会影响性能

使用事件委托,数个事件处理函数可以使用一个函数来管理。所有的单击事件被委托给一个合适的函数来处理。

采用事件委托方法如下:

 

 
 
  1. <script>  
  2.         document.onclick = function(event){  
  3.             event = event || window.event;  
  4.             var target = event.target || event.srcElement;//srcElement 针对IE  
  5.             switch(target.id){  
  6.                 case "aa" :   
  7.                 aa();  
  8.                 break;  
  9.                 case "bb" :   
  10.                 bb();  
  11.                 break;  
  12.                 case "cc" :   
  13.                 cc();  
  14.                 break;  
  15.                 case "dd" :   
  16.                 dd();  
  17.                 break;  
  18.             }     
  19.         }  
  20.           
  21.         function aa(){  
  22.             alert("aa");      
  23.         }  
  24.         function bb(){  
  25.             alert("bb");      
  26.         }  
  27.         function cc(){  
  28.             alert("cc");      
  29.         }  
  30.         function dd(){  
  31.             alert("dd");      
  32.         }  
  33.     </script>  
  34.      









本文转自 涂根华 51CTO博客,原文链接:http://blog.51cto.com/tugenhua/743120,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
JavaScript 前端开发
JavaScript DOM 操作:什么是事件委托(Event Delegation)?有什么优势?
JavaScript DOM 操作:什么是事件委托(Event Delegation)?有什么优势?
142 1
|
7月前
|
JavaScript 前端开发
事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。
【6月更文挑战第27天】事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。例如,动态列表可共享一个`click`事件处理器,通过`event.target`识别触发事件的子元素,简化管理和响应动态内容变化。
59 0
|
3月前
|
JavaScript
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
62 0
|
4月前
|
JavaScript 前端开发
理解js事件委托
【9月更文挑战第5天】理解js事件委托
50 5
|
4月前
|
JavaScript 前端开发
JS事件委托
本文介绍了JavaScript中的事件委托概念,并通过Vue.js的示例代码展示了如何利用事件委托技术来处理多个子元素的事件,从而避免为每个子元素单独绑定事件,提高性能和减少代码量。
49 0
|
4月前
|
存储 JavaScript 前端开发
js事件冒泡和事件委托
事件冒泡是指事件从最内层元素开始逐级向上传播至祖先元素的过程,默认情况下,点击子元素时会先触发自身的事件处理程序,再依次向上触发父元素的处理程序。事件委托则是在父元素上设置事件处理程序,利用事件冒泡机制处理子元素的事件,以此减少内存消耗和提高性能,特别适用于处理大量动态子元素的情况。其区别在于事件冒泡是事件传播机制的一部分,而事件委托是编程技巧,通过在父元素上绑定事件处理程序来简化子元素的事件处理。
29 0
|
8月前
|
JavaScript 前端开发
js开发:请解释什么是事件委托(event delegation),并给出一个示例。
事件委托是JavaScript中优化事件处理的技术,通过绑定事件处理器到共享的父元素,利用事件冒泡机制来处理子元素的事件。这种方法能提升性能、简化代码并降低内存消耗。示例展示了如何在父元素上监听`click`事件,然后通过`event.target`识别触发事件的具体子元素(如`&lt;li&gt;`),实现对动态生成列表项的点击事件处理。
58 1
|
8月前
|
JavaScript 前端开发 UED
JavaScript中的事件委托机制及实践应用
事件委托是JavaScript中常用的性能优化技巧,通过将事件监听器绑定在父元素上,实现对子元素事件的统一管理,减少页面中事件处理函数的数量,提升页面性能。本文将介绍事件委托的原理和实践应用,帮助开发者更好地理解和运用这一技术。
|
8月前
|
前端开发 JavaScript
JavaScript 中的事件委托机制详解
【2月更文挑战第2天】本文将深入探讨 JavaScript 中的事件委托机制,介绍其原理、优势以及实际应用场景,帮助读者更好地理解并运用这一重要的前端开发技术。
|
JavaScript 前端开发 开发者
JavaScript DOM 事件委托 ★
JavaScript DOM 事件委托 ★
128 0