經(jīng)驗總結(jié) JavaScript DOM添加事件的實現(xiàn)
你對JavaScript DOM添加事件的行為是否熟悉,這里向大家簡單介紹一下,這是我在給庫中添加事件的時候?qū)懙腏avaScript DOM添加事件的方法!這個方法是實現(xiàn)了跨瀏覽器之間的方法!
JavaScript DOM添加事件
這是我在給庫中添加事件的時候?qū)懙腏avaScript DOM添加事件的方法!這個方法是實現(xiàn)了跨瀏覽器之間的方法!
因為對于支持DOM的瀏覽器來說,添加事件是用addEventListener()方法來給對象添加事件!而對于MSIE來說則是用attachEvent()來給對象添加事件!這就使得我們必須用一個容器來裝載這兩個不同瀏覽器上對事件的處理方式!這樣我們就可以直接調(diào)用addEvent()方法來給對象添加事件了!
讓我們來看看吧!
- /**
- *注冊一個監(jiān)聽事件到元素
- *@param{Object}node所要添加事件的對象
- *@param{Object}type事件類型
- *@param{Object}listener事件方法
- */
- functionaddEvent(node,type,listener){
- //使用前面的方法檢查兼容性以保證平穩(wěn)退化
- if(!(node=$(node)))returnfalse;
- if(node.attachEvent){//這是針對IE的方法
- node['e'+type+listener]=listener;
- node[type+listener]=function(){node['e'+type+listener](window.event);}
- node.attachEvent('on'+type,node[type+listener]);
- returntrue;
- }elseif(node.addEventListener){
- //這是針對支持DOM的瀏覽器的方法
- node.addEventListener(type,listener,false);
- returntrue;
- }
- //若兩種方法都不具備則返回false;
- returnfalse;
- };
- window['liujingning']['addEvent']=addEvent;
使用方法:
比如我們要給頁面的onload()上添加事件,我們就可以這樣寫:
- liujingning.addEvent(window,'load',function(Event)
- {//這里寫你要寫的代碼}
我們也可以給某個ID添加事件
- vargetId=document.getElementById('aa');
- liujingning.addEvent(getId,'load',function(Event)
- {//這里寫你要寫的代碼}
【編輯推薦】
- JavaScript DOM特性與應(yīng)用詳解
- JavaScript和DOM輕松實現(xiàn)數(shù)據(jù)訪問
- JavaScript獲取HTML DOM節(jié)點元素詳解
- 深入了解JavaScript HTML DOM對象
- 解析HTML DOM Checkbox對象的屬性和方法