首页 > 其他分享 >js事件移除

js事件移除

时间:2023-08-29 19:45:39浏览次数:32  
标签:const signal addEventListener js controller 事件 监听器 移除 button

1.AbortController()
addEventListener()时,可以配置一个信号,用于命令式地中止/删除监听器。当相应的控制器调用 .abort() 时,监听器会被移除:

const button = document.getElementById('button');
const controller = new AbortController();
const { signal } = controller;
button.addEventListener('click', () => console.log('clicked!'), { signal });
// Remove the listener!
controller.abort();
一系列监听器希望命令式地一次性删除
使用一个信号一次性删除多个监听器,使用匿名函数也可以:
const button = document.getElementById('button');
const controller = new AbortController();
const { signal } = controller;
button.addEventListener('click', () => console.log('clicked!'), { signal });
window.addEventListener('resize', () => console.log('resized!'), { signal });
document.addEventListener('keyup', () => console.log('pressed!'), { signal });
// Remove all listeners at once:
controller.abort();
2.removeEventListener()
如果回调函数分配给变量,并且在添加监听器的地方容易访问,请使用
3. addEventListener() 中使用 once 选项
如果只需要触发一次回调的情况
4.克隆替换方法
需要在一次操作中无差别地删除所有的监听器,请使用克隆替换方法

标签:const,signal,addEventListener,js,controller,事件,监听器,移除,button
From: https://www.cnblogs.com/LunuZ/p/17665687.html

相关文章

  • 【Azure App Service for Linux】NodeJS镜像应用启动失败,遇见 RangeError: Incorrect
    问题描述在AppServiceForLinux中,部署NodeJS应用,应用启动失败。报错信息为:2023-08-29T11:21:36.329731566ZRangeError:Incorrectlocaleinformationprovided2023-08-29T11:21:36.329776866ZatIntl.getCanonicalLocales(<anonymous>)2023-08-29T11:21:36.3297830......
  • UE如何制作C++函数事件蓝图
    一.蓝图类中的函数在新建的actor中的C++ .h文件中,声明UFUNCTION(BlueprintCallable,Category="XXXX"),然后在.cpp中写函数的内容即可。编译后用蓝图继承C++类,可以进行函数的调用了二.建立函数库任意蓝图可以调用建立BlueprintFunctionLibrary的C++类,参考一中进行函数......
  • 【NestJS系列】连接数据库及优雅地处理响应
    前言Node作为一门后端语言,当然也可以连接数据库,为前端提供CURD接口我们以mysql为例,自行安装mysqlTypeORMTypeORM是一个ORM框架,它可以运行在NodeJS、Browser、Cordova、PhoneGap、Ionic、ReactNative、Expo和Electron平台上,可以与TypeScript和JavaScript一起使用。......
  • ajax跨域jsonp
    java端代码:/** *AJAX跨域检证用户状态 *@paramrequest *@paramresponse *@throwsIOException */ @RequestMapping("ajaxCheckCross.html") publicvoiddoAjaxCheckCross(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException......
  • nodejs一些学习笔记记录
    模块一个文件就是一个模块引入模块Node.js提供了exports和require两个对象,其中exports是模块公开的接口,require用于从外部获取一个模块的接口,即所获取模块的exports对象。varhello=require('./hello');模块编写的形式常规写法exports.world=function(){......
  • js 禁止复制打印
    /*NoPrint.jsV1.0CreatedbyPDFAntiCopy.com*/constnoPrint=true;constnoCopy=true;constnoScreenshot=true;constautoBlur=false;if(noCopy){document.body.oncopy=function(){returnfalse};document.body.oncontextmenu=function......
  • 关于Newtonsoft.Json的随笔
    在工作中一些陈旧项目,难免引用了一些很老版本,在一次升级中,项目引用的Newtonsoft.Json.dll突然少了一些method和class1,原来的:(咱也不懂为啥没有版本号嘞 2,升级后的 问题:1,原来使用的函数不存在,但是其实还在,换地方了而已,以下是修改:Newtonsoft.Json.JavaScriptConvert.Seria......
  • login;jsessionid=node07a53tu5ba3vd9k0wmsboxmq20.node0
    问题描述:shiro重定向到登入页面,登入地址出现了jsessionid=node07a53tu5ba3vd9k0wmsboxmq20.node0 解决方案:sessionManger中sessionIdUrlRewritingEnabled设置为false即可;<beanid="sessionManager"class="org.apache.shiro.web.session.mgt.DefaultWebSessionManage......
  • js面向对象浅析-表单生成
    js面向对象浅析-表单生成前言:这里就表单生成器的案例对js面向对象分析一下。。。(function(window){varFormBuilder=function(data){this.data=data;};window.FormBuilder=FormBuilder;})(window);FormBuilder.prototype.create=function(){va......
  • 11个有趣且实用的js库
    大家好,今天给大家分享几个前端实用的库。为了帮助你节省一些时间并提高工作效率,下面这些插件库你一定能用的上!1.BigPictureBigPicture是一款轻量级且独立于框架的JavaScript图像/视频查看器插件。可以使用<img>标签以及背景图像,支持Youtube、Vimeo、直接视频链接、任何......