事件委托(事件代理)的原理以及优缺点是什么?
事件委托原理:事件冒泡机制。
优点: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>
8var oUl1 = ElementById('ul1');
event是什么词性9 myAddEvent(oUl1,'click',function(e){
10var e = e || window.event;
11var target = e.target || e.srcElement;
deName === 'LI'){
13 alert(target.innerHTML);
14 target.style.background = 'red';
15 }
16 });
17// 事件绑定封装成js函数
18function myAddEvent(obj, ev, fn){
19if(obj.attachEvent){ // ie
20 obj.attachEvent('on'+ev, fn);
21 }else{
22 obj.addEventListener(ev, fn, false);
23 }
24 }
25
26
27 </script>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论