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