首页前端开发JavaScriptJS addEventListener()和attachEvent()方法实现注册事件

JS addEventListener()和attachEvent()方法实现注册事件

时间2024-01-31 13:58:03发布访客分类JavaScript浏览464
导读:收集整理的这篇文章主要介绍了JS addEventListener( 和attachEvent( 方法实现注册事件,觉得挺不错的,现在分享给大家,也给大家做个参考。 在 JavaScri...
收集整理的这篇文章主要介绍了JS addEventListener()和attachEvent()方法实现注册事件,觉得挺不错的,现在分享给大家,也给大家做个参考。

在 JavaScript 的 DOM 事件模型中,通过调用对象的 addEventListener() 方法注册事件。用法如下:
element.addEventListener(String tyPE, Function listener, boolean useCaptrue);

参数说明如下:

  • type:注册事件的类型名。事件类型与事件属性不同,事件类型名没有 on 前缀。例如,对于事件属性 onclick 来说,所对应的事件类型为 click。
  • listener:监听函数,即事件处理函数。在指定类型的事件发生时将调用该函数。在调用这个函数时,默认传递给它的唯一参数是 event 对象。
  • useCaptrue:是一个布尔值。如果为 true,则指定的事件处理函数将在事件传播的捕获阶段触发;如果为 false,则事件处理函数将在冒泡阶段触发。

示例1

下面示例使用 addEventListener() 为所有按钮注册 click 事件。首先,调用 document 的 getelementsbytagname() 方法捕获所有按钮对象;然后,使用 for 语句遍历按钮集(BTn),并使用 addEventListener() 方法分别为每一个按钮注册事件函数,获取当前对象所显示的文本。

button id="btn1" onclick="btn1();
    ">
    按 钮 1/button>
    button id="btn2" onclick="btn2(event);
    ">
    按 钮 2/button>
    script>
      VAR btn = document.getElementsByTagName("button");
 //捕获所有按钮  for(var i in btn){
          //遍历按钮集合   btn[i].addEventListener("click", function(){
        alert(this.innerHTML);
  }
    , true);
  //为每个按钮对象注册一个事件处理函数,定义在捕获阶段进行响应  }
    /script>
     

在浏览器中预览,单击不同的按钮,则浏览器会自动显示按钮的名称。效果如图所示:

使用 addEventListener() 方法能够为多个对象注册相同的事件处理函数,也可以为同一个对象注册多个事件处理函数。为同一个对象注册多个事件处理函数对于模块化开发非常有用。

示例2

在下面示例中,为段落文本注册两个事件:mouseover 和 mouseout。当光标移到段落文本上面时会显示为蓝色背景,而当光标移出段落文本时会自动显示为红色背景。这样就不需要破坏文档结构为段落文本增加多个事件属性。

p id="p1">
    为对象注册多个事件/p>
    script>
      var p1 = document.getElementById("p1");
 //捕获段落元素的句柄  p1.addEventListener("mouseover", function () {
        this.style.background = 'blue';
  }
    , true);
 //为段落元素注册第1个事件处理函数  p1.addEventListener("mouseout", function () {
        this.style.background = 'blue';
  }
    , true);
     //为段落元素注册第2个事件处理函数/script>
    

IE 事件模型使用 attachEvent() 方法注册事件。用法如下:

element.attachEvent(etype, eventName)

参数列表如下:

  • etype:设置事件类型,如 onclick、onkeyup、onmouSEMove 等。
  • eventName:设置时间名称,也就是事件处理函数。

示例3

在下面示例中,为段落标签 p> 注册两个事件:mouseover 和 mouseout,设计当光标经过时,段落文本背景色显示为蓝色,当光标移开之后,背景色显示为红色。

p id="p1">
    为对象注册多个事件/p>
    script>
      var p1 = document.getElementById("p1");
 //捕获段落元素  p1.attachEvent("onmouseover", function () {
        this.style.background = 'blue';
  }
    );
 //注册mouseover事件  p1.attachEvent("onmouseout", function () {
        this.style.background = 'red';
  }
    );
     //注册mouseout事件/script>
    

使用 attachEvent() 注册事件时,其事件处理函数的调用对象不再是当前事件对象本身,而是 window 对象,因此事件函数中的 this 就指向 window,而不是当前对象,如果要获取当前对象,应该使用 event 的 srcElement 属性。

IE 事件模型中的 attachEvent() 方法第 1 个参数为事件类型名称,需要加上 on 前缀,而使用 addEventListener() 方法时,则不需要这个 on 前缀,如 click。

到此这篇关于JS addEventListener()和attachEvent()方法实现注册事件的文章就介绍到这了,更多相关JS addEventListener()和attachEvent()内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • JavaScript中EventBus实现对象之间通信
  • JS事件循环机制event loop宏任务微任务原理解析
  • Js on及addEventListener原理用法区别解析
  • javascript事件循环event loop的简单模型解释与应用分析
  • js中addEventListener()与removeEventListener()用法案例分析
  • node.js中对Event Loop事件循环的理解与应用实例分析
  • node.JS事件机制与events事件模块的使用方法详解
  • JavaScript 鼠标事件(MouseEvent)案例讲解

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: Vue中ref和$refs的介绍以及使用方...下一篇:js动态生成表格(节点操作)猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: JS addEventListener()和attachEvent()方法实现注册事件
本文地址: https://pptw.com/jishu/594050.html
net4.0怎么安装 c语言函数如何声明

游客 回复需填写必要信息