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

yizhihongxing

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日

相关文章

  • 学习AngularJs:Directive指令用法(完整版)

    学习AngularJs:Directive指令用法(完整版)是一篇关于AngularJS指令用法的详细攻略。下面我来详细讲解该攻略。 概述 该攻略主要介绍AngularJS中Directive指令的用法,指令是AngularJS的核心部分,它们允许我们扩展HTML,使其具有复杂的行为和交互特性。指令可以用于添加自定义标记,创建自定义元素,设置元素样式,添加事…

    JavaScript 2023年6月10日
    00
  • Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用

    一、什么是jQuery Ajax? jQuery Ajax是一组用于处理Ajax请求的方法和函数。通过它可以实现异步获取数据和处理数据的功能,可以向服务器发送请求以及在不刷新页面的情况下接收来自服务器的响应数据,从而实现网页动态更新的效果。 二、向WebService发出请求,返回泛型集合数据的异步调用 在使用jQuery Ajax与Web Service交…

    JavaScript 2023年6月11日
    00
  • 用js实现简单轮播图

    下面是用js实现简单轮播图的完整攻略: 1. 创建HTML结构 首先,我们需要先在HTML中创建结构,包括轮播图的容器和图片等元素。代码如下所示: <div class="carousel"> <ul class="carousel-list"> <li><img src=&q…

    JavaScript 2023年6月11日
    00
  • 防止重复发送 Ajax 请求

    防止重复发送 Ajax 请求是一个常见的开发任务,因为在页面交互过程中,用户可能会频繁地发起相同的请求,如果每次都向服务器发起请求,不仅会增加服务器的压力,也会降低用户体验。下面是防止重复发送 Ajax 请求的完整攻略: 1. 使用防抖技术 防抖技术是一种延迟执行函数的策略,即在指定时间内如果触发多次事件,只会执行一次。在 Ajax 请求中,我们可以使用防抖…

    JavaScript 2023年6月11日
    00
  • JavaScript 中this指向问题案例详解

    下面用 Markdown 格式编写“JavaScript 中 this 指向问题案例详解”的攻略: JavaScript 中this指向问题案例详解 什么是 this 在 JavaScript 中,this 表示当前对象。具体所指对象,取决于 this 的出现位置以及函数的调用方式。 this 的指向可以根据不同的情况来变化。同时,有一些坑点需要注意,因为一…

    JavaScript 2023年6月10日
    00
  • 前端页面禁止别人调试的方法

    前端页面禁止别人调试的方法并非绝对可行,但可以一定程度上增加安全性和难度。以下是几种常见的方法: 1. 关键代码混淆 使用 JavaScript 的混淆工具可以将代码转换为难以理解和修改的形式。可以在构建前的自动化任务中使用工具,例如 UglifyJS。 示例代码: function hi() { var a = "hello "; va…

    JavaScript 2023年6月11日
    00
  • JavaScript正则表达式解析URL的技巧

    JavaScript正则表达式可以用于解析URL,可以通过正则表达式对URL进行匹配和处理,具体步骤如下: 使用正则表达式匹配URL中的协议、域名、路径、查询参数等各个部分; 将匹配结果包装成对象,方便后续的解析和处理; 通过对象的属性和方法对URL进行分析和操作。 下面分别对这三个步骤进行详细讲解。 1.使用正则表达式匹配URL的各个部分 正则表达式可以很…

    JavaScript 2023年6月10日
    00
  • 详解在JavaScript中如何判断变量类型

    以下是详解在JavaScript中如何判断变量类型的完整攻略: 1.使用typeof运算符 JavaScript提供了typeof运算符,可以用来判断变量的类型,它返回的结果为一个字符串,包含以下几种类型: “undefined”:未定义的变量 “boolean”:布尔类型 “number”:数字类型 “string”:字符串类型 “object”:对象类型…

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