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日

相关文章

  • JavaScript返回0-1之间随机数的方法

    当我们需要获取0-1之间的随机数时,可以使用JavaScript提供的Math对象的随机函数进行实现。具体实现方式如下: 方法1 Math.random() 使用Math.random()方法可以获取0-1之间的随机数,具体实现代码如下: function getRandom() { return Math.random(); } 使用示例: console…

    JavaScript 2023年6月10日
    00
  • JS如何实现基于websocket的多端桥接平台

    实现基于websocket的多端桥接平台,可以采用前后端分离的架构,前端通过websocket与后端进行双向数据通信,从而实现多端之间的桥接。具体步骤如下: 后端实现websocket服务 首先,在后端实现websocket服务,可以使用Node.js + socket.io来实现。Node.js提供了事件驱动的非阻塞I/O模型,使得我们可以轻松地创建异步的…

    JavaScript 2023年6月10日
    00
  • 一种新的javascript对象创建方式Object.create()

    一种新的javascript对象创建方式Object.create() Object.create()是一个比较新的JavaScript方法,它可以创建一个新对象,并将原型设置为一个已有的对象。这意味着你可以使用一个现有对象作为新对象的原型,在新对象里共享原型的属性和方法。使用Object.create()的主要优点包括: 简化代码 更简单的原型继承 字面量…

    JavaScript 2023年5月27日
    00
  • javascript实现图片左右滚动效果【可自动滚动,有左右按钮】

    下面是详细讲解“javascript实现图片左右滚动效果【可自动滚动,有左右按钮】”的完整攻略: 1. 确定HTML结构 首先需要确定HTML结构,一般来说,我们可以使用 ul 和 li 标签来实现一个图片轮播图。如下所示: <div class="container"> <ul class="img-list…

    JavaScript 2023年6月11日
    00
  • JavaScript 中使用SpreadJS导入和导出 Excel 文件的方法

    下面是详细的攻略。 JavaScript 中使用 SpreadJS 导入和导出 Excel 文件的方法 SpreadJS 是一款基于 JavaScript 的电子表格组件,支持 Excel 的导入和导出功能。本文将介绍如何使用 SpreadJS 的 API 对 Excel 文件进行导入和导出操作。 导入 Excel 文件 使用 SpreadJS 的 API …

    JavaScript 2023年6月11日
    00
  • nicedit 轻量级编辑器 使用心得

    Nicedit 轻量级编辑器使用心得 Nicedit是一款轻量级的富文本编辑器,它使用简单,易于集成在任何项目中。在本篇文章中,我们将深入探讨Nicedit的使用,包括基本使用、自定义设置和集成到网站中的过程。 基本使用 Nicedit的基本使用非常容易,只需要在HTML文件中引入相关的JS和CSS文件,然后在页面中添加一个div元素作为编辑器即可: &lt…

    JavaScript 2023年6月10日
    00
  • js的onload事件及初始化按钮事件示例代码

    让我来详细讲解一下“JS的onload事件及初始化按钮事件示例代码”的攻略。 什么是onload事件 在网页中,图片、音频、视频等资源需要加载后才能显示或播放。而onload事件便是在页面加载完毕后触发的事件,可以用来检测页面或某些资源是否加载完成。 onload事件可以用在不同的元素上,例如: 在元素上,表示页面所有内容都已经加载完成; 在、、等元素上,表…

    JavaScript 2023年6月11日
    00
  • JS创建对象的四种方式

    以下是“JS创建对象的四种方式”的完整攻略: 1. 对象字面量 对象字面量是一种最简单的对象创建方式,就是直接在代码中书写一个对象。具体格式如下: let obj = { key1: ‘value1’, key2: ‘value2’, key3: function() { console.log(‘this is a method’); } } 其中,对象中…

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