javascript中的事件委托(代理)
来源:互联网 发布:能看拳皇漫画的软件 编辑:程序博客网 时间:2024/05/16 17:06
—–事件委托的原理用到的就是事件冒泡和目标元素,把事件处理器添加到父元素,等待子元素事件冒泡,并且父元素能够通过target(IE为srcElement)判断是哪个子元素,从而做相应处理。
传统的事件处理:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> </ul></body></html><script> (function () { var oli = document.getElementsByTagName("li"); for (var i = 0; i < oli.length; i++) { oli[i].addEventListener("click",showCon,false); } function showCon() { console.log(this.innerHTML); } })()</script>
事件委托
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> </ul></body></html><script> (function(){ var oul = document.getElementsByTagName("ul")[0]; oul.addEventListener('click',showCon,false); function showCon(e) { e=e||window.event; var targetElement=e.target||e.srcElement; if(targetElement.nodeName.toLowerCase()==="li"){ console.log(targetElement.innerHTML); } }})();</script>
事件委托的优点:
1.管理的函数变少了。不需要为每个元素都添加监听函数。对于同一个父节点下面类似的子元素,可以通过委托给父元素的监听函数来处理事件。
2.可以方便地动态添加和修改元素,不需要因为元素的改动而修改事件绑定。
3.JavaScript和DOM节点之间的关联变少了,这样也就减少了因循环引用而带来的内存泄漏发生的概率
阅读全文
1 0
- javascript中的事件委托(代理)
- javascript中的事件委托(代理)
- JavaScript 事件委托/事件代理
- JavaScript事件委托/事件代理
- javascript-委托事件(事件代理)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- 浅谈Javascript事件委托(代理)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- JavaScript事件代理和委托(Delegation)
- js---JavaScript中的事件委托/事件代理,如何通过事件委托进行异步DOM事件监听
- JavaScript事件代理和委托
- JavaScript事件代理和委托
- JavaScript中的事件委托
- 五大常用算法之五:分支限界法
- Map<String, String> 遍历的四种方法
- 100中去除99个
- Dagger2 用@Qualifier解决依赖冲突
- C++中如何设置前置声明
- javascript中的事件委托(代理)
- gif录频制作的工具
- ADB模拟法广播
- struts.enable.DynamicMethodInvocation = true 动态方法调用
- 欢迎使用CSDN-markdown编辑器
- 撸一撸 ICML2016的CReLU
- 屏蔽类自动创建的copy函数和赋值函数
- 触摸[0] 触摸事件传递机制
- c++实现子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次