首页
学习
活动
专区
工具
TVP
发布

js添加事件移除事件:addEventListener()与removeEventListener()

另有js事件详解 点击打开链接 一.addEventListener()和removeEventListener()讲解 addEventListener()与removeEventListener...它们都接受3个参数:如 addEventListener(“事件名” , “事件处理函数” , “布尔值”); (注:事件名不含”on”,如“click”) 现在的版本可以省略第三个参数...()来移除移除时传入的参数与添加处理程序时使用的参数相同。...这也意味着通过addEventListener()添加的匿名函数无法移除 错误用法示例: document.body.addEventListener('touchmove', function...布尔值参数是true,表示在捕获阶段调用事件处理程序;就是最不具体的节点先接收事件,最具体的节点最后接收事件 如果是false,在冒泡阶段调用事件处理程序;则是先寻找指定的位置,由最具体的元素接收

6.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

react移除监听事件无效

问题描述 首先先来复现一下代码,背景是这样的,需要监听一下scroll事件,但是监听函数需要当前组件的this环境,所以监听函数上需要bind(this), 但是这样操作后发现无法removeEventListener...我们都知道匿名函数是无法移除的,原因就在于此,直接添加的匿名函数时无法实现另一个匿名函数和此匿名函数相等。...那么我们再来看一下为何加了bind(this)之后也无法移除呢。那先来看看bind的作用。...那么为何会加上bind之后无法移除呢,我们来看一下下面的两个代码 let func1 = test.getName.bind(test); let func2 = test.getName.bind(test...我想看到了上图的输出结果,大家应该明白了为何加上bind之后会无法移除监听事件了,其根源就在于每次加上bind之后返回的函数并不是指向同一个函数 解决方案 既然明白了原因所在,那么我们来说一下如何解决。

3.4K20

js事件

中的值类型:String,Number,Boolean,Null,Object,Function 8.JS中的字符型转换成数值型:parseInt(),parseFloat() 9.JS中的数字转换成字符型...:(""+变量)10.JS中的取字符串长度是:(length) 11.JS中的字符与字符相连接使用+号. 12.JS中的比较操作符有:==等于,!...=不等于,>,>=,<.<= 13.JS中声明变量使用:var来进行声明 14.JS中的判断语句结构:if(condition){}else{} 15.JS中的循环结构:for([initial expression...HTML: 51.当超链和ONCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:<a href="a.html" onclick......的多重继续. 73.JS中的self指的是当前的窗口 74.JS中状态栏显示内容:window.status="内容" 75.JS中的top指的是框架集中最顶层的框架 76.JS中关闭当前的窗口:

10.7K110

js动画事件_JavaScript事件

js之动画事件 首先,动画事件主要包括以下三个animationstart,animationiteration和animationend事件,下面做简单分别介绍。...animationstart 该事件在css动画开始播放时触发 animationiteration 该事件在css动画重新播放时触发 animationend 该事件在css动画结束播放时触发 我们知道...animation:name duration timing-function delay iteration-count direction; 分别是:动画名称 动画持续事件 动画运行速度曲线 动画开始时的运行时间...this.innerHTML="动画正在运行"; x.style.background="pink"; } function myanimationiterration() //动画再次运行触发,同样也是通过事件监听...this.innerHTML="动画重新运行"; x.style.background="greenyellow"; } function myanimationend() //动画运行结束时触发,同样也是通过事件监听事件

17.9K10

Js 事件委托(事件代理)

一、概述 事件委托,又叫事件代理。事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。 例子:有三个同事预计会在周一收到快递。...二、为什么是使用事件委托 一般来说,dom需要有事件处理程序,我们都会直接给它设事件处理程序就好了,那如果是很多的dom需要添加事件处理呢?...,这就是为什么性能优化的主要思想之一就是减少DOM操作的原因;如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能; 每个函数都是一个对象...三、事件委托原理 事件委托利用的是事件冒泡原理,将事件绑定到父级元素上,当点击子元素时,通过事件冒泡将事件传递到父级元素。  四、总结: 那什么样的事件可以用事件委托,什么样的事件不可以用呢?...适合用事件委托的事件:click,mousedown,mouseup,keydown,keyup,keypress。

11.2K30

js事件循环

首先,我们来解释下事件循环是个什么东西: 就我们所知,浏览器的js是单线程的,也就是说,在同一时刻,最多也只有一个代码段在执行,可是浏览器又能很好的处理异步请求,那么到底是为什么呢?...我们先来看一张图(这张图来自于http://www.zcfy.cc/article/node-js-at-scale-understanding-the-node-js-event-loop-risingstack...从上图我们可以看出,js主线程它是有一个执行栈的,所有的js代码都会在执行栈里运行。...原因:因为一开始js主线程中跑的任务就是macrotask任务,而根据事件循环的流程,一次事件循环只会执行一个macrotask任务,因此,执行完主线程的代码后,它就去从microtask队列里取队首任务来执行...任务,而没有办法执行macrotask任务,这样我们就无法进行UI渲染/IO操作/ajax请求了,因此,我们应该避免这种情况发生。

18.5K41

js事件大全

一般事件 事件 浏览器支持 描述 onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDblClick IE4|N4|O 鼠标双击事件 onMouseDown...onMouseMove IE4|N4|O 鼠标移动时触发的事件 onMouseOut IE4|N3|O3 当鼠标离开某对象范围时触发的事件 onKeyPress IE4|N4|O 当键盘上的某个键被按下并且释放时触发的事件...onStop IE5|N|O 浏览器的停止按钮被按下时触发的事件或者正在下载的文件被中断 onUnload IE3|N2|O3 当前页面将被改变时触发的事件 表单相关事件 事件 浏览器支持 描述...滚动字幕事件 事件 浏览器支持 描述 onBounce IE4|N|O 在Marquee内的内容移动至Marquee显示范围之外时触发的事件 onFinish IE4|N|O 当Marquee...元素完成需要显示的内容后触发的事件 onStart IE4|N|O 当Marquee元素开始显示内容时触发的事件 编辑事件 事件 浏览器支持 描述 onBeforeCopy IE5|N|O 当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发的事件

3.8K10

js --- 事件

1.事件流   事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件,这个传播过程即DOM事件流。...2.两种事件流模型   1.冒泡型事件流:事件的传播是从最特定的事件目标到最不特定的事件目标。即从DOM树的叶子到根   2.捕获型事件流:事件的传播是从最不特定的事件目标到最特定的事件目标。...即从DOM树的根到叶子 3.绑定事件的方法   1.普通浏览器 绑定事件:addEventListener(type,name,bool);     删除事件:removeEventListener...()   2.ie 低版本 绑定事件:attachEvent()     删除事件:detachEvent() 4.参数说明 type 事件类型 例如:click load   name...事件执行函数   bool true 为事件捕获 && false 为事件冒泡 5.阻止事件冒泡和 事件捕获 1.阻止事件冒泡 不 阻止默认行为     event.stopPropagation

7.5K30

JS 事件循环

,脚本执行,事件处理等 其包含的线程有:GUI 渲染线程(负责渲染页面,解析 HTML,CSS 构成 DOM 树)、JS 引擎线程、事件触发线程、定时器触发线程、http 请求线程等主要线程 关于执行中的线程...: 主线程:也就是 js 引擎执行的线程,这个线程只有一个,页面渲染、函数处理都在这个主线程上执行。...工作线程:也称幕后线程,这个线程可能存在于浏览器或js引擎内,与主线程是分开的,处理文件读取、网络请求等异步事件。...上述过程的不断重复就是我们说的 Event Loop (事件循环)。...宏任务主要包含:script( 整体代码)、setTimeout、setInterval、I/O、UI 交互事件、setImmediate(Node.js 环境) 微任务主要包含:Promise、MutaionObserver

15.1K10

js 事件笔记

一、事件简述 1、事件概念 在Web中, 事件在浏览器窗口中被触发,执行事先绑定的事件处理器(也就是事件触发时会运行的代码块),对事件做出响应。...如果事件不传播,我们无法确定我们点击的对象是什么? 2、事件流三种模型 2.1事件冒泡模型 事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的元素。...比如点击div事件,先是document监听到,然后分发到html/body/div 2.3DOM事件流 DOM2级事件规定事件流包括三个阶段,首先发生的是事件捕获,为截取事件提供机会,然后是实际目标接收事件...DOCTYPE html> JS Bin .box1{ border:...3.4 removeEventListener解绑事件 通过addEventListener添加的事件处理程序只能通过removeEventListener移除移除时参数与添加的时候相同 添加的匿名函数无法移除

10.9K21

JS事件

事件 HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件、页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件。...想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念。 事件事件流描述的就是从页面中接收事件的顺序。...而早期的IE和Netscape提出了完全相反的事件流概念,IE事件流是事件冒泡,而Netscape的事件流就是事件捕获。...绑定方式有如下两种 行内绑定(内联模型): 通过在JS中选中某个节点,然后给节点添加onclick属性 "btnClick()">按钮 function btnClick(){...console.log("hello"); } script> 复制代码 动态脚本: 通过在JS中选中某个节点,然后给节点添加onclick属性 "btn">按钮 var btn =

8.1K20
领券