document.getElementById(‘btn‘).addEventListener(‘click‘, event => {
console.log(‘clicked‘)
})
// event.target 触发事件的元素
// event.preventDefault() 阻止默认行为
基于DOM树形结构;
事件顺着出发元素向上冒泡;
应用场景:时间代理
// event.stopPropagation() 阻止冒泡,只在当前事件触发节点响应
<div id = "div3">
<a href="#">a1</a>
<a href="#">a2</a>
<a href="#">a3</a>
<a href="#">a4</a>
<button>加载更多...</button>
</div>
// 点击加载更多,可以产生更多链接;点击每个链接触发不同的动作
const div = document.getElementById(‘div3‘)
// 统一把子元素的点击事件代理到父元素上,减少代码量
// 减少浏览器内存占用,不用每个a标签上绑定事件
// 不可以滥用,瀑布流比较适用
div.addEventListener(‘click‘, event => {
event.preventDefault()
const target = event.target
if(target.nodeNamme === ‘A‘) // 如果是A标签,排除按钮button触发的click事件
// if(target.matches(selector)判断选择器是不是当前的触发元素
alert(target.innerHTML)
})
[JavaScript初级面试]8. WEB API - 事件
原文:https://www.cnblogs.com/welody/p/15214515.html