博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
addEventListener的三种用法
阅读量:4591 次
发布时间:2019-06-09

本文共 1736 字,大约阅读时间需要 5 分钟。

首先addEventListener得API

target.addEventListener(type, listener[, options]);target.addEventListener(type, listener [,{capture: Boolean, bubbling: Boolean, once: Boolean}]);target.addEventListener(type, listener[, useCapture]); type表示监听的字符串。listener当所监听的事件类型触发时,会接收到一个事件通知(实现了  接口的对象)对象。listener 必须是一个实现了  接口的对象,或者是一个options 可选一个指定有关 listener 属性的可选参数对象。可用的选项如下:
  • capture:  ,表示 listener 会在该类型的事件捕获阶段传播到该 EventTarget 时触发。
  • once:  ,表示 listener 在添加之后最多只调用一次。如果是 true, listener 会在其被调用之后自动移除。
  • passive: ,表示 listener 永远不会调用 preventDefault()。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。
  •  mozSystemGroup: 只能在 XBL 或者是 Firefox' chrome 使用,这是个 ,表示 listener 被添加到 system group。
useCapture  可选,是指在DOM树中,注册了该listener的元素,是否会先于它下方的任何事件目标,接收到该事件。沿着DOM树向上冒泡的事件不会触发被指定为use capture(也就是设为true)的listener。当一个元素嵌套了另一个元素,两个元素都对同一个事件注册了一个处理函数时,所发生的事件冒泡和事件捕获是两种不同的事件传播方式。事件传播模式决定了元素以哪个顺序接收事件。进一步的解释可以查看  及  文档。 如果没有指定, useCapture 默认为 false 。 第一种最普遍的用法 dom.addEventListener(type,function(){
... },false) 绑定在dom的事件触发回调函数,可以触发函数的内部的逻辑 第二种用法,这种用法和this息息相关,当我们想在构造函数里面使用这个方法 注意在作用域 function Student(dom){
  this.name = '123';   this.onclick1 = function (){
    alert(this.name);   }   this.onclick2 = function (){
    alert(this.name);   }   dom.addEventListener('click',this.onclick1,false);   dom.addEventListener('click',this.onclick1.bind(this),false); } var s = new Student(document.querySelector(...))
第三种,这种方法不常见

var a = document.querySelector('.a');

function Student(el) {

  el.addEventListener('click', this, false);
}
Student.prototype.handleEvent = function(e) {
  switch (e.type) {
    case 'click':
     aa();
    break;
    default:
    break;
  }
};
var b = new Student(a);

function aa() {

alert(1);
}

 

转载于:https://www.cnblogs.com/smallfishzzy/p/7923329.html

你可能感兴趣的文章
LOJ #2145. 「SHOI2017」分手是祝愿
查看>>
二分查找
查看>>
[导入]子网掩码和ip地址的关系
查看>>
Rehashing
查看>>
单点登录SSO:概述与示例
查看>>
暑假集训(3)第三弹 -----Til the Cows Come Home(Poj2387)
查看>>
SpringMVC工作原理及流程
查看>>
工具类封装
查看>>
从数据库的表导出到Excel表格中【让客户端下载的Excel】
查看>>
js5:框架的使用,使框架之间无痕连接
查看>>
第六次随笔
查看>>
jquery快速入门三
查看>>
分布式锁 原理及实现方式
查看>>
四则运算三完整版
查看>>
18.3 线程的声明周期
查看>>
fomo6d游戏系统开发 fomo6d游戏
查看>>
div简单布局理解
查看>>
EasyUI Tree判断节点是否是叶
查看>>
Java基础加强总结(一)——注解(Annotation)
查看>>
Windows 2008R2关闭网络发现
查看>>