为了考虑浏览器的兼容性问题,都需要对浏览器进行类型检测。
function addHandler(el, type, fn){
if(window.attachEvent){
//ie事件名称前增加on开头
el.attachEvent("on" + type, fn);
}else{
//记得加上第三个参数,由于ie下没有事件捕捉,所以ff设置为事件冒泡保持一致
el.addEventListener(type, fn, false);
}
}
大多数前端开发中都会找到这样代码,但是从效率上来说还需要进一步考虑,这样在每次绑定时候都需要判断一次,其实在第一次调用的时候就已经知道浏览器的类型。
function addHandler(el, type, fn){
if(window.attachEvent){
//ie事件名称前增加on开头
addHandler = function(el, type, fn){
el.attachEvent("on" + type, fn);
}
}else{
//记得加上第三个参数,由于ie下没有事件捕捉,所以ff设置为事件冒泡保持一致
addHandler = function(type, fn, false){
el.addEventListener(type, fn, false);
}
}
addHandler(type, fn, false); //第一次调用
}
在第一次调用以后的绑定方法就不需要每次都判断类型了,这样减少了重复的类型判断。
参考:
http://parkmy.iteye.com/blog/431306
http://blog.csdn.net/fisher_jiang/article/details/2139089
分享到:
相关推荐
在JavaScript中,事件绑定是创建交互式网页的关键部分。本文将详细讲解JavaScript处理事件绑定的一些兼容性写法,适用于不同的浏览器环境。 首先,让我们看一个基本的事件绑定函数的实现。这个函数`addEvent`接受三...
本知识点将介绍 JavaScript 中两种常用的方法:attachEvent 和 addEventListener,以及它们在不同浏览器中的应用和区别。 首先,attachEvent 方法是早期 Internet Explorer 浏览器引入的事件监听方法,它的语法是:...
为 DOM 绑定事件需要考虑浏览器的兼容性问题,我们可以使用不同的方式来绑定事件,包括直接为 Element 对象绑定事件、使用 W3C 的 addEventListener 和 IE 的 attachEvent 方法,以及自定义绑定函数等。
### JavaScript重复绑定事件的后果与解决方案 #### 一、引言 在进行Web前端开发时,事件处理是非常重要的一部分。合理的事件绑定能够提高用户体验,而错误的事件绑定则可能导致各种问题,比如性能下降、功能异常等...
其次,W3C事件处理函数主要通过addEventListener和removeEventListener两个方法来实现事件的绑定和解绑。这是现代事件绑定的标准方法,它支持一个元素上有多个事件监听器,并且能够在不影响其他监听器的情况下添加或...
对于IE浏览器,它使用不同的事件绑定方式:`attachEvent`和`detachEvent`。这两个方法的用法与`addEventListener`和`removeEventListener`类似,但有一些差异,比如事件处理函数的`this`指向不同,以及没有第三个...
为了更好地管理事件处理函数,我们通常会在JavaScript中创建一个专门的事件绑定函数。例如: ```javascript function bind(el, name, fn) { return el.addEventListener ? el.addEventListener(name, fn, false) :...
- `attachEvent`: 在IE浏览器中(非IE9及以上版本)使用,功能与`addEventListener`类似,但是事件处理顺序与`addEventListener`相反,且不支持事件捕获阶段。 理解JavaScript的事件绑定机制对于编写高性能、可维护...
在早期的浏览器中,如IE浏览器,事件绑定通常使用attachEvent方法,而其他现代浏览器则使用addEventListener方法。attachEvent方法是IE浏览器特有的,它接受两个参数:事件名称和事件处理器函数。例如,要为一个按钮...
总之,JavaScript在不同浏览器环境下的事件绑定存在差异,特别是IE浏览器的`attachEvent`方法。开发者需要了解这些差异,并根据实际需求选择合适的解决方案,以确保事件处理函数在所有目标浏览器中都能按预期顺序...
- **JavaScript事件注册**:通过`addEventListener`或`attachEvent`(IE浏览器)为元素添加事件监听器,也可以使用HTML属性直接绑定事件处理函数,如`onclick="functionName()"`。 - **事件处理函数**:定义函数来...
在JavaScript中,我们可以使用addEventListener或attachEvent(IE浏览器)来实现这一功能。事件绑定允许我们创建响应式的应用程序,提高用户体验。在HTML5中,事件可以直接在元素上通过`on[eventname]`属性设置,如`...
4. IE特有:`attachEvent`和`detachEvent`,用于事件绑定和解绑。它们仅在Internet Explorer浏览器中有效,且`this`指向`window`,事件处理函数可以重复绑定,但只执行一次。 5. W3C标准:`addEventListener`和`...
在JavaScript中,`addEventListener`和`attachEvent`都是用于向元素添加事件监听器的方法,但它们之间存在一些关键差异,特别是在处理`this`关键字时。`addEventListener`是W3C标准的一部分,被大多数现代浏览器支持...
`attachEvent()`方法与`addEventListener()`相似,但它只支持冒泡阶段的事件处理。 事件委托(也称为事件代理)是事件监听的一个重要应用,它利用了事件冒泡的机制来简化事件处理器的管理。事件冒泡是指一个事件不...
在JavaScript中,处理DOM事件监听有两个主要的方法:`addEventListener` 和 `attachEvent`。这两个方法在功能上相似,但存在一些关键的区别,特别是在浏览器兼容性和事件处理方式上。 `addEventListener` 是W3C标准...
本文详细介绍了 JavaScript 中事件绑定与解绑的方法,并通过具体的代码示例展示了在不同浏览器环境下的实现方式。了解这些基础知识对于前端开发者来说至关重要,能够帮助我们更好地控制页面的行为,提升用户体验。...