1. DOM事件的级别
dom0: ele.onclick = function(){}
dom2: ele.addEventListener('click',function(){}, false)
dom3: ele.addEventListener('keyup',function(){}, false), 增加了事件类型,鼠标事件键盘事件
dom1标准在定义时,没有涉及dom事件相关
2. DOM事件模型
捕获和冒泡,捕获向下,冒泡向上
3. DOM事件流
1阶段,捕获事件
2阶段,到达目标元素
3阶段,目标元素上传到window对象
4. DOM事件捕获的具体流程(冒泡相反)
window接收 -》document -> html标签 -》body ->父级 -》目标
js如果获取html节点:document.documentElement
5. Event对象的常见应用
1.阻止默认行为
event.preventDefault() (比如,给a便签绑定点击事件,添加该语句,则不会触发a的跳转)
2.阻止冒泡
event.stopPropagation()
3.阻止其他事件触发
event.stopImmediateProPagation() (比如一个标签绑定两个事件,则不会触发另一个)
4.绑定事件的具体标签(事件委托)
event.currentTarget: 绑定事件的元素
event.target: 触发事件的元素
6. 自定义事件
1: Event
var eve = new Event('custom');
ele.addEventListener('custom' ,function(){
console.log('custom')
})
ele.dispatchEvent(eve)
// 不能传递参数
2. CustomEvent
var eve = new CustomEvent('custom',{detail: params});
ele.addEventListener('custom' ,function(e){
console.log(e.detail)
})
ele.dispatchEvent(eve)
网友评论