当前位置: 首页 > Web前端 > HTML5

DOM事件捕获和冒泡自定义事件

时间:2023-04-04 23:17:59 HTML5

DOM事件小计的基本概念:DOM事件级别DOM0:element.onclick=function(){}DOM2:element.addEventListener('click',function(){},false)DOM3:element.addEventListener('keyup',function(){},false)DOM事件模型捕获冒泡DOM事件流捕获===>目标阶段===>冒泡描述DOM事件捕获的具体过程捕获具体过程(冒泡反之)窗口===>文档===>html===>body===>...目标元素演示捕获过程://在body中创建一个id为ev的div,自己设置宽高背景varev=document.getElementById('ev')window.addEventListener('click',function(){console.log('windowcaptrue');},true)//true触发捕获阶段,false触发冒泡阶段document.addEventListener('click',function(){console.log('documentcaptrue');},true)document.documentElement.addEventListener('click',function(){console.log('htmlcaptrue');},true)document.body.addEventListener('click',function(){console.log('bodycaptrue');},true)ev.addEventListener('click',function(){console.log('evcaptrue');},true)//点击id为ev的div,查看控制台打印如下窗口captruedocumentcaptruehtmlcaptruebodycaptrueevcaptrue//打印顺序与注册顺序无关Event对象常见应用事件.preventDefault()防止默认事件event.stopPropagation()防止冒泡event.stopImmediatePropagation()事件响应优先级event.currentTarget指向触发事件的元素event.target事件绑定元素自定义事件(模拟事件)vareve=newEvent('custome');element.addEventListener('custome',function(){console.log('custome');});element.dispatchEvent(eve);//注意事件对象eve不是事件名custome