浏览器 事件冒泡、捕获、阻止

一、冒泡型事件流

  1. 事件冒泡

    事件会从 target (事件源)开始触发,然后逐级向上层元素传递,直到 window 结点

  2. 挂载冒泡型事件响应

    1. 标签上用 onclick 挂载函数调用,多个函数调用可以用 ; 分隔,会按调用顺序依次执行。
    2. 脚本中用 obj.onclick = fn 挂载,会覆盖原先在标签上已挂载的所有响应。
    3. 脚本中用 obj.addEventListener(type, fn)obj.addEventListener(type, fn, false)
  3. 阻止事件冒泡

    1. w3c:event.stopPropagation()
    2. IE(11以下):window.event.cancleBubble = true
  4. 事件委托

    当多个子元素都需要响应某个事件时,可以利用事件冒泡机制将该事件委托到其父元素中响应,从而减少给DOM添加过多的绑定事件


    补充:多个子元素可以通过获取事件源的方法区分

    w3c:event.target
    IE:window.event.srcElement

    function bindListener(_obj, _type, _fn){
         
    	/**
    	 * @param {Node} _obj: 父元素
    	 * @param {String} _type: 事件类型
    	 * @param {Function} _fn: 事件响应 回调函数参数(event, target)
    	 */
    	_obj.addEventListener(_type, function(e){
         
    		let e = e || event || window.event;		// 兼容写法
    		let target = e.target || e.srcElement;	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值