做门户网站挣钱吗,c2c交易,网站开发培训中心,购物商城网站开发公司事件的本质是程序各个组成部分之间的一种通信方式#xff0c;也是异步编程的一种实现。DOM 支持大量的事件。
EventTarget 接口概述
DOM 的事件操作#xff08;监听和触发#xff09;#xff0c;都定义在 EventTarget 接口。所有节点对象都部署了这个接口#xff0c;其他…
事件的本质是程序各个组成部分之间的一种通信方式也是异步编程的一种实现。DOM 支持大量的事件。
EventTarget 接口概述
DOM 的事件操作监听和触发都定义在 EventTarget 接口。所有节点对象都部署了这个接口其他一些需要事件通信的浏览器内置对象比如XMLHttpRequest、AudioNode、AudioContext也部署了这个接口。
该接口主要提供了三个实例方法。
addEventListener绑定事件的监听函数removeEventListener移除事件的监听函数diapatchEvent触发事件
EventTarget.addEventLIstener()
用于在当前节点或对象上定义一个特定事件的监听函数。一旦这个事件发生就会执行监听函数。该方法没有返回值。
target.addEventListener(type, listener[, useCapture]);type事件名称大小写敏感listener监听函数事件发生时会调用该监听函数useCapture监听函数是否在捕获阶段触发默认 false
function hello() {console.log(Hello world)
}var button document.getElementById(btn);
button.addEventListener(click, hello, false);第二个参数除了监听函数还可以是一个具有 handleEvent 方法的对象。
buttonElement.addEventListener(click, {handleEvent: function (event) {console.log(click);}
});第三个参数除了布尔值 useCapture还可以是一个属性配置对象。该对象有以下属性。
capture布尔值表示该事件是否在 捕获阶段 触发监听函数once布尔值表示监听函数是否只触发一次然后就自动移除passive布尔值表示监听函数不会调用事件的 preventDefault 事件。如果监听函数调用了浏览器将忽略这个要求并在监控台输出一行警告。
如果希望事件监听函数只执行一次可以打开属性配置对象的 once 属性。
element.addEventListener(click, function(event) {// 只执行一次的代码
}, { once: true });addEventListener() 可以为针对当前对象的同一个事件添加多个不同的监听函数。这些函数按照添加顺序触发即先添加先触发。如果为同一个事件多次添加同一个监听函数该函数只会执行一次多余的添加将自动被去除不必使用 removeEventListener 方法手动去除。
function hello () {console.log(Hello world);
}document.addEventListener(click, hello, false);
document.addEventListener(click, hello, false);执行上面代码点击文档只会输出一行 Hello world。
如果希望向监听函数传递参数可以用匿名函数包装一下监听函数。
function print(x) {console.log(x);
}var el document.getElementById(div1);
el.addEventListener(click, function (){ print(Hello); }, false);监听函数内部的 this指向当前事件所在的那个对象。
EventTarget.removeEventListener()
用来移除 addEventListener() 添加的事件监听函数。该方法没有返回值。
div.addEventListener(click, listener, false);
div.addEventListener(click, listener, false);它的参数与 addEventListener() 完全一致。
EventTarget.dispatchEvent()
在当前节点上触发指定事件从而触发监听函数的执行。该方法返回一个布尔值只要有一个监听函数调用了 Event.preventDefault()则返回值为 false否则为 true。
target.diapatchEvent(event);它的参数是一个 Event 对象的实例。
para.addEventListener(click, hello, false);
var event new Event(click);
para.dispatchEvent(event);