一、event初识
1、概念
Event 对象代表事件的状态,当dom tree中某个事件被触发的时候,会同时自动产生一个用来描述事件所有的相关信息(比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。)的对象,这个对象就是event(事件对象)
2、获取event方法
(1)直接通过event获取
代码中写event.
(2)通过函数传参数的形式
let tags = document.getElementsByTagName("button")
event.cancelBubble
tags[0].addEventListener("click", function (e) {
console.log(e)
}
二、event重要知识点
1、冒泡和捕获
参考:js事件冒泡详解
阻止冒泡:e.stopPropagation或者window.event.cancelBubble = true
通常考虑兼容性要这样写:
function stopBubble(e) {
if (e && e.stopPropagation) {
e.stopPropagation(); //因此它支持W3C的stopPropagation()方法
} else {
window.event.cancelBubble = true; //否则,我们需要使用IE的方式来取消事件冒泡
}
}
2、默认阻止
preventDefault()或者e.returnValue=false
参考:preventDefault() 事件方法
阻止默认的行为,比如button默认行为是提交,使用了默认阻止,那button就不会提交,url默认是跳转,使用了默认阻止就不会跳转
cancelFunc:function () {
if(event.preventDefault){
event.preventDefault();
}else {
event.returnValue = false;
}
}