JavaScript DOM 添加事件

來源:互聯網
上載者:User

因為對於支援DOM的瀏覽器來說,添加事件是用addEventListener()方法來給對象添加事件!
而對於MSIE來說則是用attachEvent()來給對象添加事件!這就使得我們必須用一個容器來裝載這兩個不同瀏覽器上對事件的處理方式!這樣我們就可以直接調用addEvent()方法來給對象添加事件了!
這不是更方便?!呵呵……
讓我們來看看吧!
/**
* 註冊一個監聽事件到元素
* @param {Object} node 所要添加事件的對象
* @param {Object} type 事件類型
* @param {Object} listener 事件方法
*/
function addEvent( node, type, listener ) {
//使用前面的方法檢查相容性以保證平穩退化
if(!(node = $(node))) return false;

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] );
return true;
}else if (node.addEventListener) {
// 這是針對支援DOM的瀏覽器的方法
node.addEventListener( type, listener, false );
return true;
}
// 若兩種方法都不具備則返回false;
return false;
};
window['liujingning']['addEvent'] = addEvent;

使用方法:
比如我們要給頁面的onload()上添加事件,我們就可以這樣寫:
liujingning.addEvent(window,'load',function(Event) { //這裡寫你要寫的代碼}
我們也可以給某個ID添加事件
var getId = document.getElementById('aa');
liujingning.addEvent(getId,'load',function(Event) { //這裡寫你要寫的代碼}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.