event事件传播规则

参考原文:https://my.oschina.net/u/1454562/blog/205010

event事件传播有三个阶段:捕获阶段、目标阶段、冒泡阶段

target.addEventListener(type, listener[, options]);

true表示该元素在事件的“捕获阶段”(由外往内传递时)响应事件;

false表示该元素在事件的“冒泡阶段”(由内向外传递时)响应时间。

 

html代码:

<div id='d'>
        <p id='p'>
            <span id='s'>Click Me!</span>
        </p>
    </div>

js代码:

var div = document.getElementById('d');
    var p = document.getElementById('p');
    var span = document.getElementById('s');

    function onClickFn(event) {
        var tagName = event.currentTarget.tagName;
        var phase = event.eventPhase;
        console.log(tagName, phase);
    }

    div.addEventListener('click', onClickFn, true);
    p.addEventListener('click', onClickFn, true);

    span.addEventListener('click',function(){
        console.log('span')
    },true)

如果true:

 
(index):45 DIV 1
(index):45 P 1
(index):52 span

如果为false:

span
(index):45 P 3
(index):45 DIV 3

 

转载于:https://www.cnblogs.com/rengised/p/6497560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值