我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue中addEventListener()监听事件案例讲解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue中addEventListener()监听事件案例讲解

一、语法

element.addEventListener(event, function, useCapture);

第一个参数:事件的类型 (如 “click” 或 “mousedown”),详参【事件类型】;

第二个参数:事件触发后调用的函数;

第三个参数:(布尔值,可选)用于描述事件是冒泡还是捕获;

注意:不要使用 “on” 前缀。 例如,使用 “click” ,而不是使用 “onclick”。

可以使用函数名,来引用外部函数:

element.addEventListener("click", function(){ alert("Hello World!"); });

element.addEventListener("click", myFunction);

function myFunction() {
    alert ("Hello World!");
}

Window 对象添加事件句柄:

window.addEventListener("resize", function(){
    document.getElementById("demo").innerHTML = sometext;
});

传递参数

当传递参数值时,使用"匿名函数"调用带参数的函数:

var p1 = 5;
var p2 = 7;
document.getElementById("myBtn").addEventListener("click", function() {
    myFunction(p1, p2);
});
function myFunction(a, b) {
    var result = a * b;
    document.getElementById("demo").innerHTML = result;
}

二、事件冒泡或事件捕获?

事件传递有两种方式:冒泡与捕获

事件传递定义了元素事件触发的顺序。 如果将 <p> 元素插入到 <div> 元素中,用户点击 <p> 元素, 哪个元素的 “click” 事件先被触发呢?

冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。

捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。

addEventListener() 方法可以指定 “useCapture” 参数来设置传递类型:

addEventListener(event, function, useCapture);

默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递

document.getElementById("myDiv").addEventListener("click", myFunction, true);

removeEventListener() 方法

removeEventListener() 方法移除由 addEventListener() 方法添加的事件句柄:

element.removeEventListener("mousemove", myFunction);

浏览器兼容处理

var x = document.getElementById("myBtn");
if (x.addEventListener) {                    // 所有主流浏览器,除了 IE 8 及更早版本
    x.addEventListener("click", myFunction);
} else if (x.attachEvent) {                  // IE 8 及更早版本
    x.attachEvent("onclick", myFunction);
}

IE 8 及更早 IE 版本,Opera 7.0及其更早版本不支持 addEventListener()removeEventListener() 方法。但是,对于这类浏览器版本可以使用 detachEvent() 方法来移除事件句柄:

element.attachEvent(event, function);
element.detachEvent(event, function);

三、拓展阅读

《Vue进阶(七十九):使用postMessage来实现父子通信跨域》

《Vue进阶(九十二):窗口间通信postMessage》

《Vue进阶(八十六):VUE中iframe结合window.postMessage实现跨域通信》

补充介绍:

addEventListener()事件监听

addEventListener()方法将事件处理程序附加到指定的元素。

addEventListener()方法将事件处理程序附加到元素,而不覆盖现有的事件处理程序。

您可以向一个元素添加许多事件处理程序。您可以向一个元素添加许多相同类型的事件处理程序,即两个“单击”事件。

您可以将事件侦听器添加到任何DOM对象,而不仅仅是HTML元素。即window对象。

addEventListener()方法可以更容易地控制事件对冒泡的反应。

使用addEventListener()方法时,JavaScript与HTML标记分离,以提高可读性,

并允许您添加事件侦听器,即使您不控制HTML标记也是如此。

您可以使用removeEventListener()方法轻松删除事件侦听器。

到此这篇关于Vue中addEventListener() 监听事件的文章就介绍到这了,更多相关vue addEventListener监听事件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue中addEventListener()监听事件案例讲解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue中addEventListener()监听事件案例讲解

这篇文章主要介绍了Vue中addEventListener()监听事件案例讲解,包括语法讲解和事件冒泡或事件捕获的相关知识,本文结合示例代码给大家讲解的非常详细,需要的朋友可以参考下
2022-12-31

Vue的addEventListener()监听事件怎么使用

本篇内容介绍了“Vue的addEventListener()监听事件怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、语法eleme
2023-07-04

JavaGUI事件监听机制超详细讲解

Java事件监听器是由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类。JAVA中监听接口是继承java.util.EventListener的类,事件类继承java.util.EventObject的类
2023-03-03

SpringBoot如何监听redis Key变化事件案例详解

项目中需要监听redis的一些事件比如键删除,修改,过期等,下面这篇文章主要给大家介绍了关于SpringBoot如何监听redis Key变化事件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

vue中对监听esc事件和退出全屏问题的解决方案

这篇文章主要介绍了vue中对监听esc事件和退出全屏问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

JavaFX 监听窗口关闭事件实例详解

1.写在前面在JavaFX的程序开发的时候,在使用多线程的时候,默认情况下在程序退出的时候,新开的线程依然在后台运行。 在这种情况下,可以监听窗口关闭事件,在里面关闭子线程。2.具体实现的样例package sample;import ja
2023-05-31

编程热搜

目录