在元素上写事件和addEventListener()的区别[通俗易懂]

2022-09-18 13:46:36 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

在元素上写事件和addEventListener()的区别
  1. onclick添加事件不能绑定多个事件,后面绑定的会覆盖前面的。而addEventListener能添加多个事件绑定,按顺序执行。
  2. onclick只能冒泡,addEventListener()可以得到捕获or冒泡。
  3. addEventListener方式,不支持低版本的IE。(attachEvent 支持IE)。
  4. 普通方式绑定事件后,不可以取消。addEventListener绑定后则可以用 removeEvenListener 取消。
  5. addEventListener 是W3C DOM 规范中提供的注册事件监听器的方法。
addEventListener用法:

语法: element.addEventListener( type , listener , useCapture ) – – 添加事件监听 – – type: 事件类型字符串,不使用“on”前缀 – – callback:事件处理程序(回调函数) – – useCapture:可选参数,是否使用事件捕获的方式处理事件。不传递时,默认为false,表示不使用事件捕获(使用事件冒泡),如果需要显示事件捕获,则显示传递true。

如果你对事件捕获与冒泡不太了解请看:JS事件流介绍以及阻止事件冒泡

示例:

代码语言:javascript复制
document.getElementById("item").addEventListener( 'click' , (event) => { 
   
	console.log(event)
}, false )

addEventListener 第三个参数: 为 true 时,浏览器采用Capture(捕捉) 为 false 时,浏览器采用bubbing(冒泡)– 建议使用!

addEventListener兼容写法:

IE9之前浏览器使用element.attachEvent(type, callback)

代码语言:javascript复制
attachEvent(type, callback)

type:事件类型字符串,使用“on”前缀 callback:事件处理程序(回调函数) 注意:因为IE9之前只有事件捕获,没有事件冒泡,所有attachEvent没有第三个参数。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157852.html原文链接:https://javaforall.cn

0 人点赞