首页 > 编程语言 > 详细

[JavaScript初级面试]8. WEB API - 事件

时间:2021-09-07 04:14:50      阅读:12      评论:0      收藏:0      [点我收藏+]

题目

  • 编写一个通用的事件监听函数
  • 描述事件冒泡的流程
  • 无限下拉的图片列表,如何监听每个图片的点击

事件绑定

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!