数码资讯
深入了解JS事件绑定
一、传统事件模型 传统的事件模型有局限性。 内联模型以HTML标记属性的形式使用,并与HTML混合,这无疑导致了修改和扩展的问题,这是很少使用的。 脚本模型是将事件处理函数写入js文件,并从页面中获取相应事件函数的绑定元素来触发执行,但也存在缺陷: 1。事件绑定到多个事件监视函数,后者将覆盖前者。
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
一、传统事件模型
传统的事件模型有局限性。
内联模型以HTML标记属性的形式使用,并与HTML混合,这无疑导致了修改和扩展的问题,这是很少使用的。
脚本模型是将事件处理函数写入js文件,并从页面中获取相应事件函数的绑定元素来触发执行,但也存在缺陷:
1。事件绑定到多个事件监视函数,后者将覆盖前者。
2。限制重复绑定的需要
三.标准化的事件对象
两。现代事件绑定
DOM2级事件定义两种方式添加和删除事件:addEventListener(),removeEventListener()。它们分别接收三个参数:事件名、函数、气泡或捕获布尔值(真值捕获、false表示泡沫)。
相应的,即提供了两个类似的方法:attachevent()和detachevent(),但在IE的两方面问题:无法传递这个对象(这在IE窗口)。
函数AddEvent(obj,类型,FN){
如果(typeof obj.addeventlistener!= 'undefined){
Obj.addEventListener(型、FN、假);
} else if(obj.attachevent!= 'undefined){
obj.attachevent(开+类型,函数(){
fn.call(obj,窗口。事件);
});
}
};
但由于添加了匿名函数,所以添加后不能删除。此外,IE提供了不能按顺序执行绑定事件的方法,并且存在内存泄漏问题。
为了解决这一系列问题,有必要进一步封装方法和使用DOM2级标准的其它浏览器。对于IE,我们采用传统的添加和删除模式。
1。是用js添加一个哈希表存储对象事件,为每个对象赋一个ID值,按添加调用序列,首先判断是否有相同的处理函数,不将事件绑定函数添加到哈希表中,这种方法解决了顺序执行和重复添加问题。
2。删除遍历函数匹配的判定,并删除存在性。
总结:
以前,JS对事件绑定没有很深入的了解。它甚至停留在传统的事件绑定模型上。它对程序实现不太了解。学习型图书馆的包装的一部分的时候,我们学会了很多JS的应用。虽然这是类似于jQuery JS库实现了封装效果的数据绑定机制是非常好的,但只知道,我不知道为什么在黑暗中有一种感觉,对人的具体实现,将有感觉豁然开朗,有良好的相容性,一个通用的程序应考虑的内容很多,解决了很多问题,这些问题也逐渐清晰很多。
传统的事件模型有局限性。
内联模型以HTML标记属性的形式使用,并与HTML混合,这无疑导致了修改和扩展的问题,这是很少使用的。
脚本模型是将事件处理函数写入js文件,并从页面中获取相应事件函数的绑定元素来触发执行,但也存在缺陷:
1。事件绑定到多个事件监视函数,后者将覆盖前者。
2。限制重复绑定的需要
三.标准化的事件对象
两。现代事件绑定
DOM2级事件定义两种方式添加和删除事件:addEventListener(),removeEventListener()。它们分别接收三个参数:事件名、函数、气泡或捕获布尔值(真值捕获、false表示泡沫)。
相应的,即提供了两个类似的方法:attachevent()和detachevent(),但在IE的两方面问题:无法传递这个对象(这在IE窗口)。
函数AddEvent(obj,类型,FN){
如果(typeof obj.addeventlistener!= 'undefined){
Obj.addEventListener(型、FN、假);
} else if(obj.attachevent!= 'undefined){
obj.attachevent(开+类型,函数(){
fn.call(obj,窗口。事件);
});
}
};
但由于添加了匿名函数,所以添加后不能删除。此外,IE提供了不能按顺序执行绑定事件的方法,并且存在内存泄漏问题。
为了解决这一系列问题,有必要进一步封装方法和使用DOM2级标准的其它浏览器。对于IE,我们采用传统的添加和删除模式。
1。是用js添加一个哈希表存储对象事件,为每个对象赋一个ID值,按添加调用序列,首先判断是否有相同的处理函数,不将事件绑定函数添加到哈希表中,这种方法解决了顺序执行和重复添加问题。
2。删除遍历函数匹配的判定,并删除存在性。
总结:
以前,JS对事件绑定没有很深入的了解。它甚至停留在传统的事件绑定模型上。它对程序实现不太了解。学习型图书馆的包装的一部分的时候,我们学会了很多JS的应用。虽然这是类似于jQuery JS库实现了封装效果的数据绑定机制是非常好的,但只知道,我不知道为什么在黑暗中有一种感觉,对人的具体实现,将有感觉豁然开朗,有良好的相容性,一个通用的程序应考虑的内容很多,解决了很多问题,这些问题也逐渐清晰很多。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。