本文主要和大家分享js中的事件委托实例详解,我们主要和大家分享两个内容1.事件委托的原理以及优缺点 2. 手写原生js实现事件代理,并要求兼容浏览器。
q:事件的委托(代理 delegated events)的原理以及优缺点
A:委托(代理)事件是那些被绑定到父级元素的事件,但是只有当满足一定匹配条件时才会被挪。这是靠事件的冒泡机制来实现的,
优点是:
(1)可以大量节省内存占用,减少事件注册,比如在table上代理所有td的click事件就非常棒
(2)可以实现当新增子对象时无需再次对其绑定事件,对于动态内容部分尤为合适
缺点是:
事件代理的应用常用应该仅限于上述需求下,如果把所有事件都用代理就可能会出现事件误判,即本不应用触发事件的被绑上了事件。
例子:
@@######@@
DM建站系统律师事务所HTML5网站模板1.7
查看详情
DM建站系统律师事务所HTML5网站模板, DM企业建站系统。是由php+mysql开发的一套专门用于中小企业网站建设的开源cms。DM系统的理念就是组装,把模板和区块组装起来,产生不同的网站效果。可以用来快速建设一个响应式的企业网站( PC,手机,微信都可以访问)。后台操作简单,维护方便。DM企业建站系统安装步骤:第一步,先用phpmyadmin导入sql文件。 第二步:把文件放到你的本地服务器
0
|
单击button元素会冒泡到UL.toolbar元素,使用了e.target来定位到当前点击的button。
Q:手写原生js实现事件代理,并要求兼容浏览器
A:其实就是考核对事件对象e的了解程度,以及在IE下对应的属性名。
查看Demo
var toolbar = document.querySelector(".toolbar");
toolbar.addEventListener("click", function(e) {
var button = e.target;
if(!button.classList.contains("active"))
button.classList.add("active");
else
button.classList.remove("active");
});


