首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

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

2012-10-31 
javascript 给DOM绑定事件方法的3种写法二话不说上代码:var Event {}//方法一 runtimeEvent.addEventLi

javascript 给DOM绑定事件方法的3种写法
二话不说上代码:

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

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


//方法三 lazy modeEvent.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') {//IEEvent.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,在不使用这个函数的情况下,就不会被初始化,也就减少了初始化的判断

热点排行