持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
铃铛说点题外话
一句话前情回顾:事件流分了三个阶段(事件捕获阶段、处于目标阶段、事件冒泡阶段)以及如何阻止事件的默认行为
一句话介绍今天:接着说事件机制
铃铛说正文
今天我们继续说事件机制相关的东西
事件注册
通常我们使用addEventLister注册事件,第一个参数是我们想要绑定的事件,第二个是我们自定义的事件名字,第三个参数是布尔值,7这个参数决定了事件是捕获事件还是冒泡事件,默认情况下这个参数是false,也就是冒泡事件。
事件委托
在JS中我们因为性能优化的原因我们就确定了核心思想就是减少DOM操作
假设我们有一个有100条信息的列表,每个信息上都有一个一样的点击事件,如果我们为每一个li都添加一个事件,不仅很繁琐还会造成DOM访问次数过多而影响性能,这个时候我们就可以使用事件委托来处理
实现事件委托是利用了事件的冒泡原理实现的。当我们为最外层的节点添加点击事件,那么里面的每一条节点信息的点击事件都会冒泡到最外层节点上,委托它代为执行事件。
<ul id="ul">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<script>
window.onload = function(){
var ulEle = document.getElementById('ul');
ul.onclick = function(ev){
//兼容IE
ev = ev || window.event;
var target = ev.target || ev.srcElement;
if(target.nodeName.toLowerCase() == 'li'){
alert( target.innerHTML);
}
}
}
</script>
跟铃铛说再见
学习的最后一步:放松
今日冷笑话:一个喝多了的记者去报社,气势汹汹地质问为什么没有刊登他发表的新闻,且纠缠不休。一位善于处理难题的编辑耐心地请他打开当天报纸,然后问:“你看 报纸里还有空白位置发表你的新闻吗?”“没有。”记者回答说。“那就是为什么没有发表的原因。”?
放松结束,猜猜明天会说讲些什么吧