JS事件与冒泡

JavaScript 里的事件[mouse events, keyboard events, form events, system events]

  • onclick —————— 点击(单击)事件
  • onmouseover ———– 鼠标滑入事件(会冒泡)
  • onmouseout—————鼠标离开事件(会冒泡)
  • onmouseenter————鼠标滑入事件(不会冒泡)
  • onmouseleave————鼠标离开事件(不会冒泡)
  • ondblclick ——————- 双击(单击)事件

如果传入一个函数是被事件调用的,那么这个函数定义的第一个参数就是事件对象

ie: event是一个内置全局对象

  var  obj.onclick = function(ev){
    var ev = ev || window.event;
  }
  function abc(ev){
    var ev = ev || window.event;
  }

:+1: 更多参考W3School

Bubble(冒泡)

事件冒泡指子元素触发事件的时候,会冒泡(触发)父级的相同的事件

阻止冒泡:

  • 非标准:ev.stopPopagation();
  • 非标准:ev.cancelBubble=true; ie9以下也支持
  if(e.stopPropagation){
    e.stopPropagation()
  }else{
    cancelBubble = true;
  }

注册处理事件

如果有多个相同事件,将采用此方法进行添加事件

1、标准:obj.addEventListener(事件名称,事件函数,是否捕获);

.addEventListener(“click”,function(){},false) //false指不捕获(捕获是父到子,冒泡是子到父)先捕获后冒泡,当前元素有捕获也有冒泡,按照执行顺序在前的先执行

是否捕获

  • false冒泡
  • true捕获

先捕获后冒泡

  • 有捕获
  • 事件名称没有on
  • 事件执行的顺序是正序
  • this触发该事件的对象

2、低版ie:obj.attachEvent(事件名称,事件函数);

  • 没有捕获
  • 事件名称有on
  • 事件函数执行的顺序:标准ie-》正序 非标准ie-》倒序
  • this指向window

3、 移除 obj.removeEventListener(事件名称,事件函数)

4、 移除 object.detachEvent(事件名称,function);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值