js事件流

时间:2021-04-18 09:14:54

event:事件对象,当一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细的信息都会被临时保存在一个指定地方-event对象,供我们在需要调用。
event对象必须是在一个事件调用的函数里

ie/chrome :event是一个全局对象
ff:标准 事件对象是通过事件函数的第一个参数传入 如果一个函数是被事件调用的那么这个函数定义的第一个参数就是事件对象
event兼容:
function(ev){
var e=ev || event;
}

onmousemove:当鼠标在一个元素上面移动时触发
//触发频率不是像素,而是时间间隔,在一个指定时间内,如果鼠标和上一次的位置发生改变那么就会触发一次
//

事件流
事件冒泡:当一个元素接收到事件时,会把他接收到的所有传播给他的父级
传播的是事件;一直到顶层window;
event.cancelBubble=true;//阻止当前事件的冒泡
事件的第一种绑定形式
document.onclick=fn1//
document.onclick=fn2//会覆盖前面绑定的fn1
事件的第二种绑定形式
//给一个对象的同一个事件绑定多个不同的函数
ie:obj.attachEvent("onclick",fn1)
ie:obj.attachEvent(事件名称,事件函数)
1:没有捕获
2:事件名称有on
3:事件函数执行的顺序:标准ie正序 非标准ie是倒序
4:this指向window
标准:obj.addEventListener(事件名称,事件函数,是否捕获)
这里的事件名称是没有on的 默认是false不捕获(冒泡)true(捕获)
1:有捕获
2:事件名称没有on
3:事件执行的顺序是正序
4:this是触发该事件的对象

fn1()执行函数
fn1.call() 调用函数
函数下的一个方法,call方法第一个参数可以改变函数执行过程中的内部指向,call方法第二个参数开始就是原来函数的参数列表

事件捕获
ie是不能捕获的
addEventlistener(obj,"click",true) //false改成true那么就是事件捕获了,事件自上往下传播,从外往里传播

事件的取消:
取消普通事件与取消事件绑定函数
1:document.onclick=fn1;
document.onclick=null;//取消

2:ie:obj.detachEvent(事件,事件函数);
标准:obj.removeEventListener(事件,事件函数,false)