您现在的位置是:网站首页> 编程资料编程资料
JavaScript onclick与addEventListener使用的区别介绍_javascript技巧_
2023-05-24
296人已围观
简介 JavaScript onclick与addEventListener使用的区别介绍_javascript技巧_
摘要
当我们想要给某个DOM元素绑定事件的时候,最常用的方法是通过on + 事件名字的方式。而在DOM2级事件定义了两个方法,用于处理指定和删除事件处理程序的操作:
addEventListener()和removeEventListener().
并且它们都接受三个参数:要处理的事件名,作为事件处理的一个函数,一个布尔值。
最后的布尔值如果为false,表示在冒泡阶段调用事件处理函数,如果是true,表示在捕获阶段调用事件处理程序。
区别
同时绑定多个事件
我们来想一个问题,我们使用onclick方法可不可以给一个按钮绑定多个事件呢?
我们来尝试一下:
然后我们来看一下结果是否两次都打印出来了:

可以看到只有第二次生效了,说明通过这种方法第二次绑定事件会将第一次覆盖!
现在我们来用第二种方法:
我们来看一下运行结果:

OK,可以看到通过这种方式我们是可以进行多次绑定事件的。
决定事件触发顺序
我们先来看一下代码:
想一下如果我们点击了按钮,打印的顺序应该是什么样子的呢?

可以看到是从内而外,是以事件冒泡的方式来执行的。
而如果使用另一种方法:
我现在把div1的事件通过addEventListener的方式来绑定,并且给第三个参数设置为true。
那么结果就是这样的:

所以我们通过第二种方法我们可以决定DOM事件的触发是以事件捕获的事件流还是事件冒泡的事件流方式。
removeEventListener的使用方法
这个方法就是删除DOM指定的事件,如果我们删除onclick的话,直接将onclick的值设置为null就可以了。
那这个方法如何删除呢?我们来看一下代码:
div1.addEventListener('click',()=>{console.log('div1的事件');},true); div1.removeEventListener('click',()=>{console.log('div1的事件');},true); 这样做的话我们是否能将这个事件删除呢?答案是否定的,我们的两个事件处理程序虽然代码是一样的,但是它们确确实实不是一个事件处理程序,如果我们想要删除掉某个事件,我们必须这样做:
var fn = function(){ console.log('div1的事件'); } div1.addEventListener('click',fn,true); div1.removeEventListener('click',fn,true); 只有这样才能确定两个方法所用的为一段事件处理程序,也是有效的删除方法。
到此这篇关于JavaScript onclick与addEventListener使用的区别介绍的文章就介绍到这了,更多相关JS onclick与addEventListener区别内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
- JavaScript onclick点击事件-点击切换图片且自动播放
- JavaScript onclick 和 click 的区别详解
- JavaScript onclick事件使用方法详解
- JavaScript中click和onclick本质区别与用法分析
- JS addEventListener()和attachEvent()方法实现注册事件
- js中addEventListener()与removeEventListener()用法案例分析
- JavaScript使用addEventListener添加事件监听用法实例
- Javascript 的addEventListener()及attachEvent()区别分析
相关内容
- el-select 数据回显,只显示value不显示lable问题_vue.js_
- 记录--使用el-time-picker默认值遇到的问题_vue.js_
- Vue首评加载速度及白屏时间优化详解_vue.js_
- 关于uniapp中onReachBottomDistance属性的使用_javascript技巧_
- JavaScript延迟加载之async与defer的应用_javascript技巧_
- 关于el-select组件设置默认值的实现方式_vue.js_
- JavaScript 逻辑且(&&)和逻辑或(||)的运用小结_javascript技巧_
- 一文学会如何升级npm管理的各依赖版本_node.js_
- JS中art-template模板使用过滤器问题_javascript技巧_
- Node.js实现下载文件的两种实用方式_node.js_
