js中的事件委托
来源:互联网 发布:天津广电网络宽带账号 编辑:程序博客网 时间:2024/06/05 18:30
原理:事件委托,从名字上就能理解,就是自己的事情交给别人去做(将事件委托给别人)
实现方法:onclick,onmouseover,onmouseout等就是事件。委托,就是让别人来做。利用冒泡的原理,把事件加到父级上,触发执行效果。
假设我们有一个父元素div,里面有很多子元素,但我们关心的是里面的一个带有”classA” CSS类的A标记:
// 获得父元素DIV, 添加监听器...document.getElementById("myDiv").addEventListener("click",function(e) { e=window.event?window.event:e; // e.target是被点击的元素 if(e.target && e.target.nodeName == "A") { // 获得CSS类名 var classes = e.target.className.split(" "); // 搜索匹配! if(classes) { // For every CSS class the element has... for(var x = 0; x < classes.length; x++) { // If it has the CSS class we want... if(classes[x] == "classA") { // Bingo! console.log("Anchor element clicked!"); // Now do something here.... } } } }});
事件委托的优点:假设有很多li元素(10000个),我们想为每一个li元素注册一个单击事件,当然你可以选择为每一个元素注册一个单击事件,可以利用循环遍历每一 个元素,这种想法最直接,最直观存在一个问题,这样的遍历操作势必会占用大量的资源。但是,如果我们利用冒泡原理,将事件委托给li元素的父级处理,这样不管多少个都能轻松搞定。
2 0
- js中的事件委托
- js中的事件委托
- js中的事件委托
- js中的事件委托
- js中的事件委托
- js中的事件委托
- js中的事件委托
- js中的事件委托
- JS中的事件委托
- js中的事件委托
- js中的事件委托
- Js中的事件委托
- js中的事件委托
- JS中的事件委托
- JS中的事件委托
- JS中的事件委托机制
- js中的事件委托总结
- js中的事件委托技术
- 数据库导入导出
- 谈谈layer弹窗自定义样式,防止样式冲突问题(实习第七天)
- Inject $scope into factory service ??
- Codeforces 463B Caisa and Pylons【二分】
- Android M源码中使用android.support.design包的TabLayout
- js中的事件委托
- 多进程监听同一个端口 php
- 打印菱形星号
- spark sql 注意事项(不定期记录)
- c语言数组名解释
- 全屏沉浸式应用
- lintcode,链表排序
- android自定义editText
- 联合体判断机器为大端字节序还是小端字节序