javascript事件机制搞不清楚

两种,冒泡和捕获,不对是捕获和冒泡。

    document.body.addEventListener("click",function(){console.log("1")},true);
    document.body.addEventListener("click",function(){console.log("4")},false);
    document.querySelector("header").addEventListener("click",function(){console.log("2")},true);
    document.querySelector("header").addEventListener("click",function(){console.log("3")},false);

说明:

  1. 先不关注捕获还是冒泡。事件激活后是先进行捕获,然后把函数都进行注册,比如一个元素绑定了多个click事件。
  2. 然后判断addEventListener的第三个参数,ture表示捕获,false表示冒泡;
  3. 上面的body,header元素绑定了四个事件,ture优于false执行(两个都有,捕获事件优于冒泡),捕获是从body往header(从外到内,对于都是true而言),冒泡是从header往body(从里到外,对于都是false而言)
  4. 阻止捕获或者冒泡,抛开这两个东西,也就是阻止事件传播。打开chrome控制台,执行console.dir(window.Event.prototype),关注里面的四个方法initEvent、preventDefault、stopImmediatePropagation、stopPropagation,第一个初始化事件方法,第二个阻止默认行为,第三个百度一下,第四个stop:停止,propagation:传播。
  5. target、currenttarget,判定当前元素,绑或解或跳过
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值