带你读《现代Javascript高级教程》八、JavaScript事件流:深入理解事件处理和传播机制(3)

简介: 带你读《现代Javascript高级教程》八、JavaScript事件流:深入理解事件处理和传播机制(3)

带你读《现代Javascript高级教程》八、JavaScript事件流:深入理解事件处理和传播机制(2)https://developer.aliyun.com/article/1349640?groupCode=tech_library


4. 示例代码

下面是一些示例代码,演示了事件流的应用和相关的属性:

<button id="myButton">点击按钮</button><ul id="myList">
  <li>项目1</li>
  <li>项目2</li>
  <li>项目3</li></ul><div id="myContainer">
  <button class="button">按钮</button>
  <a href="" class="link">链接</a></div>
<script>
  // 事件处理示例
  const button = document.getElementById('myButton');
  button.addEventListener('click', function(event) {
    console.log('按钮被点击');
  });
  // 事件代理示例
  const list = document.getElementById('myList');
  list.addEventListener('click', function(event) {
    if (event.target.tagName === 'LI') {
      console.log('项目被点击');
    }
  });
  // 事件委托示例
  const container = document.getElementById('myContainer');
  container.addEventListener('click', function(event) {
    if (event.target.classList.contains('button')) {
      console.log('按钮被点击');
    } else if (event.target.classList.contains('link')) {
      console.log('链接被点击');
    }
  });</script>

5. 参考资料

  • MDN Web Docs - Event referenceopen in new window
  • MDN Web Docs - Introduction to eventsopen in new window
  • JavaScript.info - Bubbling and capturingopen in new window
  • W3Schools - JavaScript HTML DOM EventListener

 

相关文章
|
29天前
|
JavaScript
事件触发、事件捕获与事件冒泡(js的问题)
事件触发、事件捕获与事件冒泡(js的问题)
12 0
|
10天前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
22 2
|
19小时前
|
JavaScript 前端开发 C++
【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
【5月更文挑战第2天】【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
|
3天前
|
JavaScript 前端开发 开发者
【JavaScript技术专栏】JavaScript事件处理机制详解
【4月更文挑战第30天】本文探讨JavaScript中的事件处理机制,涉及事件类型(如click、mouseover)、事件流(冒泡型、捕获型及目标阶段)、事件处理函数(内联与addEventListener方法)以及事件委托(用于优化内存和处理动态元素)。此外,还介绍了事件取消,通过`preventDefault()`和`stopPropagation()`控制事件行为。理解这些概念对构建交互式Web应用至关重要。
|
3天前
|
JavaScript 前端开发
11.JavaScript 事件的概念以及绑定方法
11.JavaScript 事件的概念以及绑定方法
|
15天前
|
JavaScript 前端开发 UED
JavaScript的事件介绍
JavaScript的事件介绍
|
15天前
|
JavaScript 前端开发
|
20天前
|
JavaScript 前端开发
JavaScript高级主题:什么是 ES6 的解构赋值?
【4月更文挑战第13天】ES6的解构赋值语法简化了从数组和对象中提取值的过程,提高代码可读性。例如,可以从数组`[1, 2, 3]`中分别赋值给`a`, `b`, `c`,或者从对象`{x: 1, y: 2, z: 3}`中提取属性值给同名变量。
16 6
|
20天前
|
存储 JavaScript 前端开发
JavaScript高级主题:JavaScript 中的 Map 和 Set 是什么?它们有什么区别?
JavaScript的ES6引入了Map和Set数据结构。Map用于存储键值对,适合通过键进行查找,而Set则存储唯一值,无键且不支持键查找。两者在性能上表现出色,尤其在频繁的写入删除操作中。选择使用哪个取决于具体应用场景:键值对需求选Map,独特值集合则选Set。
19 2
|
1月前
|
JavaScript 前端开发 流计算
JS:oninput和onchange事件的区别
JS:oninput和onchange事件的区别
21 1