Javascript中的传统事件和现代事件

Javascript中的传统事件和现代事件
大家都知道,现代事件绑定(attachevent)在伊江有很多问题与W3C标准(addEventListener)。

例如:当重复添加事件并触发闪回执行时,内存泄漏。

下面是处理绑定事件绑定的传统事件的方法
addevent.id = 1; / /事件计数器
函数AddEvent(obj,类型,FN){
如果(obj。addEventListener){
Obj.addEventListener(型、FN、假);
{其他}
判断对象是否存在,只有一个对象或每次创建一个事件对象。
/ /存储数组类型和功能键/值的形式,=======事件对象数组对象安装目标

方便事件删除
如果(!对象事件){
等效结构obj.events / FN2 },mouserover:{ FN1 },{点击:{ FN1,…}
obj.events = { };
}
var标志= false;
存储/事件对象
如果(!对象事件{型}){
类型数据存储功能一个接一个
对象事件{类型} = { };
第一个事件在第一个类型数组中存储的类型类型和函数
对象事件{类型} { 0 } = FN;
{人}
var eventfn = obj。事件{类型};
这种类型的对象通过循环查询,是否重复事件,重复标志true,返回返回。
对于(VAR我eventfn){
如果(eventfn {我} = = FN){
标志=真;
返回;
}
}
要确定事件是否重复,重复的话将不会是事件的存储功能,或事件和执行的存储。
如果(!旗){
当类型已经存在时,事件类型存储函数的总时间,最后一个周期执行
eventfn { AddEvent。ID + } = FN;
}

}

事件功能类型数组遍历调用
obj { +型} =函数(){
风险事件= window.event; / /事件对象存储

在调用时,添加事件对象中的函数,并防止与W3C标准同步默认行为。
event.preventdefault =函数(){
this.returnvalue = false;
};
在尾函数后面添加事件对象中的函数,停止气泡。
event.stoppropagation =函数(){
this.cancelbubble =真;
};

多功能循环直通式存储
无功evfn = obj。事件{类型};
对于(VAR我evfn){
事件/命令执行功能的类型,解决传统触发事件的覆盖问题和现代事件绑定反转。

事件的问题
我evfn { }。电话(这事件); / /执行功能将被放置在对象的执行环境,并通过一个事件

图像用于函数回调。
}
}

}
}
功能removeevent(obj,类型,FN){
如果(obj。removeEventListener){
Obj.removeEventListener(型、FN、假);
{人}
循环遍历对象下的事件类型是否函数的函数,如果事件将删除函数
无功evefn = obj。事件{类型};
对于(VAR我evefn){
如果(evefn {我} = = FN){
evefn {我} / /删除;该方法还可以删除该项的数组,但会保留位置的值时的访问时间

未定义的
Evefn.splice(I,1); / /删除1的位置,我,
}
}

}
}
以上是本文的全部内容,希望大家能喜欢。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部