javaScript事件捕获和冒泡

        事件是先捕获,后冒泡。从最外层向内逐层捕获直到目标(target),再逐层向上冒泡直到<html>标签。所有事件处理程序都会忽略捕获阶段,而在事件冒泡阶段触发事件。使用addEventListener绑定事件并且第三个参数为true,可以让事件在捕获阶段触发,这是唯一让事件在捕获阶段触发的方法。element.addEventListener("click",function(){},true)

事件中的this和event.target:
event.target:它始终指向最基本的元素,如:如果是单击事件则event.target指向鼠标点击的的元素。
this:this指的是当前事件触发的元素,从中可获取到元素的信息

阻止事件冒泡:

element.onclick = function(event) {
    event = event || window.event; // cross-browser event
    if (event.stopPropagation) {
        // W3C standard variant
        event.stopPropagation();
    } else {
        // IE variant
        event.cancelBubble = true;
    }
	//event.stopPropagation?event.stopPropagation():(event.cancelBubble = true);
}

一个事件有多个处理程序的情况:
事件处理程序会独立执行,互不干扰。比如有两个单击事件在同一个链接上,阻止一个事件的冒泡行为不会影响另一个事件的冒泡行为。并且浏览器不会保证事件触发的顺序。

实际编码中事件捕获使用非常少。也有一些函数不会冒泡,由捕获触发的,如:onfocus/onblur.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值