首页 > 代码库 > 事件委托(事件代理)的原理以及优缺点是什么?
事件委托(事件代理)的原理以及优缺点是什么?
事件委托原理:事件冒泡机制。
优点:1.可以大量节省内存占用,减少事件注册。比如ul上代理所有li的click事件就很不错。
2.可以实现当新增子对象时,无需再对其进行事件绑定,对于动态内容部分尤为合适
缺点:事件代理的常用应用应该仅限于上述需求,如果把所有事件都用事件代理,可能会出现事件误判。即本不该被触发的事件被绑定上了事件。
看下面的例子:
1 <ul id="ul1"> 2 <li>111</li> 3 <li>222</li> 4 <li>333</li> 5 </ul> 6 7 <script> 8 var oUl1 = document.getElementById(‘ul1‘); 9 myAddEvent(oUl1,‘click‘,function(e){ 10 var e = e || window.event; 11 var target = e.target || e.srcElement; 12 if(target.nodeName === ‘LI‘){ 13 alert(target.innerHTML); 14 target.style.background = ‘red‘; 15 } 16 }); 17 // 事件绑定封装成js函数 18 function myAddEvent(obj, ev, fn){ 19 if(obj.attachEvent){ // ie 20 obj.attachEvent(‘on‘+ev, fn); 21 }else{ 22 obj.addEventListener(ev, fn, false); 23 } 24 } 25 26 27 </script>
事件委托(事件代理)的原理以及优缺点是什么?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。