`
qbaty
  • 浏览: 97047 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript 给DOM绑定事件方法的3种写法

阅读更多
二话不说上代码:

var Event = {};
//方法一 runtime
Event.addEventListener = function(obj, eventType, listener){
	if(typeof window.addEventListener === 'function') {//DOM2接口
		el.addEventListener(type, fn, false);
	} else if(typeof document.attachEvent === 'function') {//IE
		el.attachEvent('on' + type, fn);
	} else {//DOM0接口
		el['on' + type] = fn;
	}
};


//方法二 initialize
if(typeof window.addEventListener === 'function') {//DOM2接口
	Event.addEventListener = function(el, type, fn) {
		el.addEventListener(type, fn, false);
	};
} else if(typeof document.attachEvent === 'function') {//IE
	Event.addEventListener = function(el, type, fn) {
		el.attachEvent('on' + type, fn);
	};
} else {//DOM0接口
	Event.addEventListener = function(el, type, fn) {
		el['on' + type] = fn;
	};
}


//方法三 lazy mode
Event.addEventListener = function(obj, eventType, listener){
	if (!Event.addEventListener)
	{
		if(typeof window.addEventListener === 'function') {//DOM2接口
			Event.addEventListener = function(el, type, fn) {
				el.addEventListener(type, fn, false);
			};
		} else if(typeof document.attachEvent === 'function') {//IE
			Event.addEventListener = function(el, type, fn) {
				el.attachEvent('on' + type, fn);
			};
		} else {//DOM0接口
			Event.addEventListener = function(el, type, fn) {
				el['on' + type] = fn;
			};
		}
	}
	Event.addEventListener(obj, eventType, listener);
}


第一种方法,不足之处在于只要用到这个函数就需要对DOM判断一遍,开始判断一遍是不是更好呢?

第二个方法,则是初始化的,判断了一次DOM,然后也使得Event.addEventListener指向了正确的方法,缺点就是不管用不用到这个函数,都被初始化了

这第三个方法正好补足了这点,所以被称做lazy mode,在不使用这个函数的情况下,就不会被初始化,也就减少了初始化的判断
分享到:
评论

相关推荐

    JQuery调用绑定click事件的3种写法

    本文将详细介绍在jQuery中绑定`click`事件的三种常见方法,以及它们的应用场景和差异。 ### 1. `click()`方法 这是最直接和最简单的绑定`click`事件的方式。当你希望为一个元素添加点击事件监听器时,可以使用`...

    layui动态绑定事件的方法

    综上所述,layui动态绑定事件方法的核心是通过事件委托来处理动态创建的DOM元素,并且要特别注意兼容性问题以及框架组件的实例化。通过上述方法,即使是动态添加到页面上的元素,也能确保事件能够正确地绑定和触发,...

    JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题.docx

    在JavaScript中,DOM事件处理程序的封装是跨浏览器兼容性的一个关键步骤,因为不同的浏览器对事件处理有不同的实现。本文主要讨论了在将DOM事件处理程序封装到名为`event.js`的文件时可能出现的低级错误,并提供了...

    javascript层的属性事件写法

    总的来说,JavaScript层的属性事件写法是前端开发者必备的技能,它涵盖了DOM操作、事件绑定、事件处理等多个方面。理解并熟练运用这些知识,能帮助开发者创建出交互性更强的网页应用。在实际开发中,还需要结合其他...

    事件高级用法及兼容写法

    事件委托是一种优化技巧,它利用了事件冒泡机制的特点,将事件处理函数绑定到父元素上,而不是直接绑定到每个子元素上。 ```javascript var o = document.querySelector('div'); // 动态添加按钮 document....

    jquer事件绑定

    jQuery提供了多种方式来处理DOM元素上的事件绑定,其中`bind()`方法是较为基础且灵活的一种。`bind()`方法允许开发者为指定的DOM元素绑定一个或多个事件处理器,并且支持事件委托和自定义命名空间事件绑定等功能。 ...

    js事件绑定机制1

    在提供的内容中,展示了三种不同的事件绑定方式,分别使用jQuery库的不同方法来实现。这里我们将详细探讨这些方法以及它们背后的事件绑定机制。 1. **jQuery的`.onclick()`方法** 这种方式是jQuery对原生...

    JavaScript中点击事件的写法

    DOM0级事件处理是JavaScript原生提供的事件处理方式。通过为元素的特定事件属性赋值为一个函数引用来添加事件监听器。 ```javascript var btn = document.getElementById('btn'); btn.onclick = function() { ...

    javascript获取dom的下一个节点方法

    通过示例代码,可以观察到如何通过为按钮元素的`onclick`事件绑定`jia`和`jian`函数来实现点击加减按钮后,页面上某个数字标签的数值相应增加或减少。其中,`jia`函数通过`nextElementSibling`获取按钮后面的数字...

    javascript优化

    JavaScript 优化 JavaScript 作为一种...通过选择器优化、方法链式调用、事件绑定和解除绑定、浏览器类型判断、数组和对象操作、字符串操作、元素操作、toggleClass 和事件处理等方法,可以提高 JavaScript 的性能。

    js添加绑定事件的方法

    本文主要介绍了JavaScript中添加和绑定事件的方法,分为通用方法和常用方式两个部分,以确保读者能够掌握在不同浏览器中添加事件监听的技术。 首先,介绍了添加事件的通用方法,即使用`addEventListener`和`...

    JavaScript 三种不同位置代码的写法

    第三种写法涉及到将JavaScript代码完全从HTML标记中分离出来,通过操作DOM来绑定事件处理器。示例如下: ```html 按钮3" id="btn3"> ``` ```javascript var obj = document.getElementById("btn3"); if(window....

    JavaScript手册-中文文档

    JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的、解释型的编程语言,主要用于增强网页的交互性。这份“JavaScript手册—中文文档”提供了一个全面的JavaScript学习资源,涵盖了从基础语法到高级特性的...

    JavaScript 实例大全(经典实例)

    事件处理可以通过`addEventListener`和`removeEventListener`方法进行绑定和解绑。 4. **AJAX** Asynchronous JavaScript and XML(AJAX)允许异步数据交换,实现页面无需刷新即可更新内容。通过创建`...

    js插件的写法.编写javascript插件

    JavaScript 插件是一种可复用的代码模块,它扩展了JavaScript的功能,使开发者能够便捷地在项目中添加特定功能。创建一个JavaScript插件通常涉及以下几个关键步骤和知识点: 1. **封装**: 封装是JavaScript插件的...

    狂神说系列 JavaScript笔记

    - 事件处理:JavaScript可以监听和响应用户交互,通过addEventListener和removeEventListener来绑定和解绑事件。 - DOM操作:通过DOM API可以查找、添加、删除和修改HTML元素,实现页面动态更新。 6. **异步编程*...

    jQuery简单绑定单个事件的方法示例

    jQuery提供了一种优雅的方式来绑定和处理这些事件。本文将详细介绍如何使用jQuery进行简单事件的绑定,并通过实例来展示如何操作事件响应。 首先,要了解如何在jQuery中绑定事件,最常见的方法是使用`.bind()`方法...

    javaScript 页面自动加载事件详解

    在现代网页开发中,JavaScript 页面自动加载事件是确保页面内容正确加载并且能够及时与用户交互的重要手段。这些事件能够在页面加载的不同阶段触发相应的JavaScript函数,从而执行必要的操作。 首先,我们要了解的...

    Javascript教程(王大刚)

    4. 事件处理:JavaScript可以监听并响应用户的点击、滚动、输入等行为,通过addEventListener或attachEvent来绑定事件处理器。 四、AJAX与异步编程 1. AJAX(Asynchronous JavaScript and XML)允许在不刷新整个...

    jQuery使用bind函数实现绑定多个事件的方法

    这里,`selector`是匹配元素的CSS选择器,`eventType`是要绑定的事件类型,`function`是事件触发时执行的回调函数,`data`是可选参数,可以传递给事件处理程序的数据,而`handler`是1.4版本后引入的另一种写法,允许...

Global site tag (gtag.js) - Google Analytics