event.stopImmediatePropagation() //事件相应优先级,a事件添加该方法可以组织后续事件执行
事件代理:将子元素的事件委托给父元素。
event.target 区分当前被点击的子元素
event.currentTarget 当前被委托的父元素。
事件捕获
window > document> html > body > dom
var dom = document.getElementById("dom");
window.addEventListener("click",function(){
console.log("window captrue");//window被捕获阶段执行
},true)
document.addEventListener("click",function(){
console.log("document captrue");//document被捕获阶段执行
},true)
document.documentElement.addEventListener("click",function(){
console.log("html captrue");//html被捕获阶段执行
},true)
document.body.addEventListener("click",function(){
console.log("body captrue");//body被捕获阶段执行
},true)
dom.addEventListener("click",function(){
console.log("dom captrue");//dom被捕获阶段执行
},true)
事件冒泡
dom > body > html > document > window
将addEventListener的第二个参数改为false,事件监听就是冒泡顺序。
自定义事件
var eve = new Event("自定义事件名称")
dom.addEventListener("自定义事件名称",function(){
console.log("dom dispatch");//自定义事件被触发
},true)
dom.dispatchEvent(eve)