Js事件流

  • 事件冒泡
  • 取消事件冒泡 e.cancelBubble = true
  • 例子:仿select控件
  • 事件捕获
    • 非标准下IE是没有的,在绑定事件中,标准是有的。

冒泡概述

简单来说:父元素有自己的点击方法。子元素也有自己的点击方法或者子元素就不想执行父元素的方法.
这样我们就必须阻止冒泡。

阻止冒泡

让父元素执行父元素的方法,让子元素执行子元素的方法.



测试冒泡

e.cancelBubble=true;这样就阻止冒泡了.

给事件绑定的第二种形式

可以用addEventListener也可以用attachEvent看IE还是谷歌,用的不多

call方法

call方法可以传递2个参数,第一个参数可以改变函数的this.第二个参数开始就是原来函数的参数列表
如果call方法传入的第一个参数是null,那就不改变函数内部this指向.
call方法的核心就是第一个参数,改变this指向

function fn1(){
   window.alert(this);
}
fn1();  //弹出来window
fn1.call() ;//等价于fn1();弹出的结果window
fn1.call(1);  //弹出来1 改变了this 

事件绑定的取消

  1. document.oncllick = null;
  2. IE:obj.detachEvent(事件名称,事件函数)
    标准:obj.removeEventListenrt(事件名称,时间函数,是否捕获)

你可能感兴趣的:(Js事件流)