事件冒泡、事件捕获与事件流(事件委托、代理)

事件冒泡、事件捕获与事件流

事件冒泡、事件捕获与事件流

  • 事件冒泡与事件流息息相关,事件冒泡指的是当一个元素接收到事件的时候,会把他接收到的所有一层一层传给它父级,一直到顶层window,就像泡泡从下往上冒一样
  • 事件捕获指的是当一个元素接收到事件的时候,会从具有相同事件的父级依次从上到下进行传递,与事件冒泡的顺序是相反的
  • 事件流又叫事件委托、事件代理,是利用事件冒泡,指定一个事件程序从而能够管理某一类型的所有事件。使用事件流不仅原来的元素可以获得相同的事件,新增加的节点也会具有相同的事件,事件流可以减少js中的DOM操作,提高性能。
  • 事件机制分为事件冒泡与事件捕获

事件流举例

//event对象的兼容性写法
var ev = ev||window.event;
//获得目标节点的兼容性写法
var target = ev.target||ev.srcElement;
<style>
        ul,li{
            margin: 0;
            padding: 0;
        }
        li{
            list-style: none;
        }
    </style>
<body>
    <ul id="ul1">
        <li>1111</li>
        <li>2222</li>
        <li>3333</li>
        <li>4444</li>
    </ul>
</body>
<script>
    var oUl = document.getElementById('ul1');
    oUl.onclick = function(ev){
        var ev = ev|| window.event;
        var target = ev.target|| ev.srcElement;
        if(ev.target.nodeName.toLowerCase()=='li'){
            alert(ev.target.innerHTML);
        }
    }
</script>

事件冒泡的主体

当某个元素具有事件,这个事件函数有一个event事件对象,通过这个事件对象的属性获取事件冒泡的主体。

oUl.onclick = funciton(ev){
	var ev = ev || window.event;
	var target = ev.target || ev.srcElement;
	//获取事件的目标节点的标签名
	ev.target.nodeName
	//获取事件目标节点标签的id
	ev.target.id
	ev.currentTarget
}

问题:事件冒泡和事件处理 、事件冒泡/捕捉、 怎么确定事件冒泡的主体?
知识点:事件冒泡、事件捕获、事件流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值