Javascript添加监听与删除监听用法详解

Javascript添加监听与删除监听用法详解

Javascript事件监听可以帮助我们监测用户的交互行为,从而进行相应操作。在实际开发中,添加和删除事件监听都是非常常见和有用的操作。下面来详细讲解Javascript添加监听与删除监听的用法。

添加监听

在Javascript中,我们可以使用addEventListener方法来添加事件监听。该方法接受三个参数,分别是要监听的事件名、事件处理函数和一个可选的布尔值。

以下代码是给一个按钮添加onclick事件监听的例子:

const button = document.querySelector('button');
function handleClick() {
  console.log('Button clicked');
}
button.addEventListener('click', handleClick);

以上代码的作用是给按钮添加一个点击事件监听,并在该按钮被点击时调用handleClick函数。在实际使用中,可以根据需要添加不同类型和数量的事件监听。

删除监听

当不再需要监听某个事件时,可以采用removeEventListener方法来删除该事件的监听器。该方法同样接受三个参数,分别是要删除的事件名、事件处理函数和一个可选的布尔值,其用法与addEventListener方法一致。

以下代码是从一个按钮上删除onclick事件监听的例子:

const button = document.querySelector('button');
function handleClick() {
  console.log('Button clicked');
}
button.addEventListener('click', handleClick);
// some code
button.removeEventListener('click', handleClick);

以上代码的作用是先给按钮添加一个点击事件监听,并在该按钮被点击时调用handleClick函数;然后在其它代码处理完成后,将该事件监听删除。

需要注意的是,使用removeEventListener方法时,要确保要删除的事件处理函数与添加时的相同。

示例说明

接下来举两个实际应用场景的例子来说明Javascript添加监听与删除监听的用法。

示例一

在一个页面中,有两个按钮分别用于开关灯,要求点击不同的按钮可以分别开或关灯。这个功能的实现,需要添加点击事件监听,并在按钮被点击时根据当前的状态进行相应操作。

以下是示例代码:

<button id="lightOn">开灯</button>
<button id="lightOff">关灯</button>
const lightOnBtn = document.querySelector('#lightOn');
const lightOffBtn = document.querySelector('#lightOff');
const bulb = document.querySelector('.bulb');
let isOn = false;

function handleLightOn() {
  if (!isOn) {
    bulb.classList.add('on');
    isOn = true;
  }
}

function handleLightOff() {
  if (isOn) {
    bulb.classList.remove('on');
    isOn = false;
  }
}

lightOnBtn.addEventListener('click', handleLightOn);
lightOffBtn.addEventListener('click', handleLightOff);

以上代码中,定义了两个事件处理函数handleLightOn和handleLightOff分别对应开灯和关灯操作。在页面中分别添加了两个按钮,并添加了点击事件监听,当按钮被点击时,对应的操作会被执行。

示例二

在一个动态生成的列表中,有一些条目需要删除按钮。当点击删除按钮时,对应的条目应该被删除。这个功能的实现,需要添加删除按钮的点击事件监听,并在按钮被点击时根据当前的状态进行相应操作。

以下是示例代码:

<ul id="list">
  <li><span>条目一</span><button class="delete-btn">删除</button></li>
  <li><span>条目二</span><button class="delete-btn">删除</button></li>
  <li><span>条目三</span><button class="delete-btn">删除</button></li>
</ul>
const list = document.querySelector('#list');

function handleDelete(event) {
  const listItem = event.target.closest('li');
  if (listItem) {
    listItem.remove();
  }
}

list.addEventListener('click', function(event) {
  if (event.target.matches('.delete-btn')) {
    handleDelete(event);
  }
});

以上代码中,在ul元素上添加了点击事件监听,并通过判断事件的目标元素是否是删除按钮,来决定是否执行删除操作。在handleDelete函数中,使用了closest方法来找到最近的li元素,并将其从DOM中删除。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript添加监听与删除监听用法详解 - Python技术站

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

相关文章

  • JS实现的base64加密解密操作示例

    针对“JS实现的base64加密解密操作示例”的完整攻略,我给出以下详细讲解: 什么是base64? Base64是一种基于64个可打印字符来表示二进制数据的表示方法,主要用于在HTTP协议下传输数据和加密算法中的一种实现方式。 base64加密和解密原理 加密:将二进制数据按照6位一组分成若干组(不足6位以0补全),然后按照这些组所代表的数值在Base64…

    JavaScript 2023年5月19日
    00
  • JS面向对象之多选框实现

    JS面向对象之多选框实现是一个比较基础的JavaScript面向对象应用,它的实现过程也相对简单,下面我将为大家详细讲解其完整攻略。 一、需求分析 在实现之前,我们需要先进行需求分析。在本次多选框实现中,我们需要完成以下几个基本功能: 点击某个多选框实现选中或取消选中该选项的功能; 点击“全选”按钮,所有多选框均被选中; 点击“取消全选”按钮,所有多选框均被…

    JavaScript 2023年6月10日
    00
  • 深入理解JavaScript中的语法和代码结构

    深入理解JavaScript中的语法和代码结构是成为一个优秀的JavaScript开发者必须掌握的基本技能之一。下面,我将为大家详细讲解如何来攻略这一难点。 学习语法 理解JavaScript的语法是学习JavaScript的关键。以下是一些建议,建议按照这些步骤进行学习: 1. 确立基础概念 在开始学习语法之前,必须要先掌握JavaScript中的基本概念…

    JavaScript 2023年5月19日
    00
  • gulp-htmlmin压缩html的gulp插件实例代码

    下面是“gulp-htmlmin压缩html的gulp插件实例代码”的完整攻略。 什么是gulp-htmlmin gulp-htmlmin 是一个用于压缩 HTML 文件的 Gulp 插件。 安装gulp-htmlmin 在使用 gulp-htmlmin 之前,需要先安装 Gulp 和 gulp-htmlmin,可以使用以下命令安装: npm install…

    JavaScript 2023年6月10日
    00
  • js常用函数 不错

    当提到JavaScript编程语言时,函数是其中最重要的一部分。函数可以帮助你简化代码,提高代码的复用性。在JavaScript编程中,有很多种类型的函数,但有些函数是非常常见的,可以被广泛使用。在本文中,我将会介绍几种js常用函数,让你在编写代码时能够更加轻松自如。 1. 时间函数 时间函数在JavaScript开发中有着重要的作用,可以用来创建、解析和操…

    JavaScript 2023年5月27日
    00
  • 什么是jsonp

    jsonp 是前端一种用来解决网站跨域的技术,利用script标签不受同源策略影响的特性引入一个非同源的js文件,并定义一个回调函数来接收数据,这样就可以实现跨域获取数据了,例如:现在有一个链接返回的数据是这样的: cb({ “name”: “swk”, “age”: 18 }) 这是一个标准的jsonp格式,它通过调用函数cb来传递数据,那么我们只需要定义…

    JavaScript 2023年5月9日
    00
  • JS验证字符串功能

    下面我将详细讲解“JS验证字符串功能”的完整攻略。 1. 概述 在 JavaScript 中,我们可以通过正则表达式来验证字符串的合法性。正则表达式是一种强大的字符串匹配工具,它可以用来检查一个字符串是否符合某种模式。通过使用正则表达式,我们可以实现各种复杂的字符串验证功能。 2. 正则表达式的语法 正则表达式由以下几个部分组成: 字符串字面量或 RegEx…

    JavaScript 2023年5月28日
    00
  • js异步上传多张图片插件的使用方法

    这里为大家提供一份“js异步上传多张图片插件的使用方法”的攻略,包含插件的基本介绍、使用方法以及示例说明。 1. 插件介绍 该插件是一款支持异步上传多张图片的JavaScript插件,使用该插件可以方便地实现多张图片的上传及预览等操作。 该插件的基本特点如下: 支持多张图片上传; 支持图片预览功能; 支持图片排序功能。 2. 使用方法 使用该插件需要引入jQ…

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