Javascript基础知识(二)事件

Javascript基础知识(二)事件

一、事件的定义和使用

事件是指在操作网页时所产生的一系列动作,例如鼠标点击、键盘输入、窗口滚动等等。通过事件,我们可以给网页绑定相应的响应函数,实现网页的交互功能。

在Javascript中,事件通常被定义为对象的一种,可以使用addEventListener()方法来绑定事件函数。示例代码如下:

document.getElementById('btn').addEventListener('click', function() {
    alert('Hello, world!');
});

上述代码会给id为"btn"的按钮添加一个"click"事件,当用户点击该按钮时,会触发alert()函数,输出"Hello, world!"的弹窗。

除了click事件外,还有很多其他的事件可以使用,例如mouseover、mouseout、keydown等等。

二、事件冒泡和捕获

在网页上,事件通常会存在着层次结构,例如一个按钮可能被嵌套在一个div元素内。当一个事件被触发时,它会沿着这个层次结构向上或者向下传递,而这个传递过程被称为事件的冒泡(Bubbling)和捕获(Capturing)。

事件冒泡是指事件从最具体的元素开始触发,然后沿着层次结构逐步向上传播,直到传到document对象为止。示例代码如下:

<div id="container">
    <button id="btn">Click me!</button>
</div>
document.getElementById('container').addEventListener('click', function(){
    alert('container clicked!');
});
document.getElementById('btn').addEventListener('click', function(){
    alert('button clicked!');
});

当我们点击按钮时,会依次弹出"button clicked!"和"container clicked!"的弹窗提示。

事件捕获则是从document对象开始,沿着层次结构向下传递,最后传到最具体的元素为止。使用addEventListener()方法时,可以在第三个参数中设置true,将事件设置为捕获模式,例如:

document.getElementById('container').addEventListener('click', function(){
    alert('container clicked!');
}, true);

这样当我们点击按钮时,就会先弹出"container clicked!"的弹窗提示,再弹出"button clicked!"的弹窗提示。

三、阻止冒泡和默认行为

在某些特殊情况下,我们希望阻止事件的冒泡或者默认行为,可以使用event对象提供的方法来实现。

阻止冒泡可以使用event.stopPropagation()方法,示例代码如下:

document.getElementById('btn').addEventListener('click', function(event){
    alert('button clicked!');
    event.stopPropagation();
});

当我们点击按钮时,只会弹出"button clicked!"的弹窗提示,而不会再弹出"container clicked!"的弹窗提示。

阻止默认行为可以使用event.preventDefault()方法,例如在表单提交时阻止页面跳转:

<form>
    <input type="text" name="username">
    <button id="submit-btn" type="submit">Submit</button>
</form>
document.getElementById('submit-btn').addEventListener('click', function(event){
    event.preventDefault();
    // 执行表单提交逻辑
});

上述代码会阻止页面跳转,然后执行表单提交逻辑。

四、on事件属性

除了使用addEventListener()方法外,我们还可以使用on事件属性来给元素绑定事件,例如:

<button id="btn" onclick="alert('button clicked!')">Click me!</button>

这样当我们点击按钮时,就会弹出"button clicked!"的弹窗提示。

不过这种方式有一个缺陷,就是如果元素上已经有了该事件的绑定,再使用on事件属性会覆盖原有的绑定。因此,不推荐使用on事件属性来绑定事件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript基础知识(二)事件 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 基于Javascript实现文件实时加载进度的方法

    实现文件实时加载进度的方法本质上就是通过监听HTTP请求,统计请求发起时和请求完成时的时间,并通过计算来得出百分比进度。下面是实现文件实时加载进度的详细教程: 准备工作 首先,在页面中引入jQuery: <script src="//code.jquery.com/jquery-3.3.1.min.js"></scrip…

    JavaScript 2023年5月27日
    00
  • HTML DOM setInterval和clearInterval方法案例详解

    下面我将详细讲解“HTML DOM setInterval和clearInterval方法案例详解”的完整攻略。 1. 回顾setInterval和clearInterval的概念 在深入讲解之前,我们需要先了解setInterval和clearInterval两个函数的基本概念。 setInterval:可以重复执行一个函数或一段代码,在规定的时间间隔内不…

    JavaScript 2023年6月11日
    00
  • javascript的数组方法大全

    JavaScript的数组方法大全 JavaScript中的数组是一种非常强大和常用的数据结构,可以存储任何类型的数据,并且提供了很多方便的数组方法来操作数组。在本篇文章中,我们将介绍JavaScript的所有数组方法,并提供示例说明用法。 push()方法 push()方法将一个或多个元素添加到数组的末尾。 let fruits = [‘apple’, ‘…

    JavaScript 2023年5月18日
    00
  • JavaScript中对象property的删除方法介绍

    下面是关于JavaScript对象property的删除方法介绍的完整攻略。 删除对象property的方法 在JavaScript中,我们可以使用多种方式来删除对象的property,具体包括以下三种: delete 操作符 Object.defineProperty() 方法 Object.defineProperties() 方法 下面我们将逐一讲解这…

    JavaScript 2023年6月11日
    00
  • JavaScript动态创建二维数组的方法示例

    下面是”JavaScript动态创建二维数组的方法示例”的完整攻略。 1. 什么是二维数组 二维数组是由多个一维数组组成的数组,每个一维数组可以当成是一个表格中的一行,多个一维数组就可以组成一个表格。 2. 创建二维数组 创建二维数组的方法有很多种,我们这里介绍两种常见的方法。 方法一:使用嵌套的for循环来创建二维数组 //创建一个3行4列的二维数组,并将…

    JavaScript 2023年5月27日
    00
  • js实现计时器秒表功能

    如果要使用 JavaScript 实现计时器秒表功能,需要遵循以下步骤: HTML 布局 首先,在 HTML 中创建一个容器用于显示计时器。这可以通过使用<div>元素创建。 <div id="timer">00:00:00</div> CSS 样式 为计时器设置样式,例如对齐方式、字体大小等。以下是一…

    JavaScript 2023年5月27日
    00
  • javascript异步处理工作机制详解

    Javascript异步处理工作机制详解 异步处理是Javascript中的重要概念,它允许代码在等待I/O事件、AJAX请求等等时不阻塞当前线程。本文将介绍Javascript中的异步处理机制及其实现方式。 回调函数 Javascript中最常用的方式实现异步编程是使用回调函数。简单来说,在一个异步函数完成后,会执行一个回调函数,这个回调函数就是异步函数的…

    JavaScript 2023年6月11日
    00
  • 闭包

    闭包理解 如何产生闭包 当一个嵌套的内部(子)函数引用了嵌套外部(父)函数的变量(函数)时–就产生了闭包 闭包是什么 使用chrome调试查看 理解一 — 闭包是嵌套的内部函数 理解二 — 闭包是包含被引用变量(函数)的对象 闭包存在于嵌套的内部函数中 产生闭包的条件 函数嵌套 内部函数引用了外部函数的数据(变量或函数) <script> …

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