JavaScript 事件流、事件处理程序及事件对象总结

下面给出关于 JavaScript 事件流、事件处理程序及事件对象总结的详细攻略。

1. 事件流

事件流描述的是从页面中接收事件的顺序,分为三个阶段:

  • 捕获阶段:事件从最外层的容器开始向下传递到目标元素。
  • 目标阶段:事件到达目标元素。
  • 冒泡阶段:事件从目标元素开始向上冒泡到最外层的容器。

在标准 W3C 的事件模型中,事件传递的顺序是从上往下的(捕获阶段)、到达目标元素(目标阶段)再向上冒泡(冒泡阶段)。而在 IE 浏览器中事件传递的顺序是从下往上的(事件冒泡),直到最外层的容器。

2. 事件处理程序

事件处理程序是处理特定事件的函数。可以通过 DOM 或 HTML 属性将事件处理程序指定给元素。最常见的方式是使用 HTML 属性:

<button onclick="alert('Clicked!')">Click me</button>

也可以使用 DOM 方法:

const button = document.getElementById('myBtn');
button.onclick = function() {
  alert('Clicked!');
};

使用 addEventListener() 方法动态注册:

const button = document.getElementById('myBtn');
button.addEventListener('click', function() {
  alert('Clicked!');
});

除了添加较多的灵活性外,通过使用 addEventListener() 也可以为同一元素的同一事件添加多个处理程序。

3. 事件对象

在事件处理程序内部,可以访问事件对象 event。事件对象包含与事件相关的所有信息,例如事件类型、目标元素、鼠标的位置等。

以下是一个鼠标点击事件对象的示例:

function handleClick(event) {
  console.log(event.type); // 'click'
  console.log(event.target); // the element that was clicked on
  console.log(event.clientX); // the x coordinate of the mouse pointer when the event occurred
  console.log(event.clientY); // the y coordinate of the mouse pointer when the event occurred
}

示例1 - 点击按钮时改变背景颜色

<button id="myBtn">Change Color</button>
const button = document.getElementById('myBtn');
button.addEventListener('click', function(event) {
  document.body.style.background = 'green';
});

点击按钮后,网页的背景色会改变为绿色。

示例2 - 阻止浏览器默认行为

<a href="https://www.baidu.com" id="myLink">百度</a>
const link = document.getElementById('myLink');
link.addEventListener('click', function(event) {
  event.preventDefault();
  alert('Link clicked!');
});

点击链接后,会弹出一个提示框,同时不会跳转到百度网站。可以看到,我们在事件处理程序内部使用了 preventDefault() 方法来阻止默认行为的发生。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 事件流、事件处理程序及事件对象总结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 浅析JavaScript中的对象类型Object

    下面我将详细讲解“浅析JavaScript中的对象类型Object”的完整攻略。 1. 什么是对象? 对象是 JavaScript 的核心数据类型之一,它是一组属性的集合,每个属性都由键值对组成。其中,键是字符串类型,值可以是任何数据类型,也可以是另一个对象。对象是使用大括号{}定义的。 例如,以下就是一个简单的对象: let person = { name…

    JavaScript 2023年5月27日
    00
  • 解析javascript中鼠标滚轮事件

    下面是解析 JavaScript 中的鼠标滚轮事件的完整攻略: 什么是鼠标滚轮事件? 鼠标滚轮事件(mousewheel 事件)指的是当用户通过鼠标滚轮滚动时触发的事件。在 JavaScript 中,我们可以使用 mousewheel 事件来监听用户的鼠标滚轮操作。 如何监听鼠标滚轮事件? 在 JavaScript 中,可以通过以下两种方式来监听鼠标滚轮事件…

    JavaScript 2023年6月11日
    00
  • js实现列表自动滚动循环播放

    实现列表自动滚动循环播放,可以通过JS的定时器+无缝滚动来实现。 以下是步骤: 1、创建HTML结构 首先我们要有一个HTML结构来存放我们要用JS来动态生成的滚动列表,例如: <ul id="scrollList"> <li>第1行内容</li> <li>第2行内容</li> …

    JavaScript 2023年6月11日
    00
  • Vue 3.0的attribute强制行为理解学习

    下面是关于“Vue 3.0的attribute强制行为理解学习”的完整攻略,包含了相关概念和两条示例说明。 什么是attribute attribute(属性)是HTML标签中的一个概念,例如class、style、id等。在Vue中,我们经常需要在组件中传入props属性,这些属性会被传递给组件的子元素,我们可以在子元素中使用这些属性进行相应的操作。 Vu…

    JavaScript 2023年6月11日
    00
  • Javascript简写条件语句(推荐)

    当需要根据某个条件来执行不同的代码块时,我们可以使用条件语句来实现。在JavaScript中,有多种实现条件语句的方式,而本攻略将介绍一种简写条件语句的实现方式。 简写条件语句的语法 简写条件语句的语法基于三元运算符:condition ? expr1 : expr2。它具有以下结构: condition ? expr1 : expr2 这行代码的意思是,如…

    JavaScript 2023年5月28日
    00
  • ahooks封装cookie localStorage sessionStorage方法

    介绍ahooks ahooks是一个封装好的React Hooks库,提供了很多常用的Hooks封装,可以帮助我们快速地开发Web应用。在ahooks中,有一个useCookieHooks可以用来操作cookie。如果要操作localStorage或sessionStorage,可以通过封装实现。 封装localStorage的方法 import { use…

    JavaScript 2023年6月11日
    00
  • 判断js数据类型的函数实例详解

    判断js数据类型的函数实例详解 背景 在JavaScript中,数据类型多种多样,包括了数字、字符串、布尔值、数组、对象、函数等。而有些时候,需要用JavaScript代码来对不同的数据类型做不同的操作。因此,了解如何判断这些数据类型就显得非常重要了。本文将详细讲解如何通过函数来判断JavaScript中不同数据类型。 判断数据类型的函数 typeof函数 …

    JavaScript 2023年5月27日
    00
  • location.hash保存页面状态的技巧

    当我们需要保存页面状态,以便于后续操作时,可以借助浏览器提供的location.hash协议来实现。下面,让我详细讲解一下“location.hash保存页面状态的技巧”的完整攻略。 什么是location.hash location.hash指的是URL中#及其后面的内容。比如,http://www.example.com/#section1中的#sect…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部