2011-10-13 70 views
1

我使用Event.observe方法來綁定一個事件;此方法在Prototype庫中定義。原型Event.observe的替代?

Event.observe(clickElem, "click", function(event) { 
    //operations 
}); 

我打算從我的代碼中刪除Prototype。

在普通的JavaScript中,Event.observe有沒有其他選擇?

回答

5

是,標準和傳統的IE事件處理程序:

// standard 
clickElem.addEventListener("click", function(evt) { 

}, false); 

// legacy IE 
clickElem.attachEvent("onclick", function(evt) { 

}); 

這是典型的看一些輔助功能,方便跨瀏覽器的事件處理程序。

function addEvent(elem, eventName, fn) { 
    if (typeof addEventListener !== "undefined") { 
     elem.addEventListener(eventName, fn, false); 
    } else { 
     elem.attachEvent("on" + eventName, fn); 
    } 
} 

// calling 
addEvent(clickElem, "click", function(evt) { 
    alert("You clicked me."); 
}); 

如果您不打算使用Prototype,那麼您必須自己處理兩個事件模型之間的差異。如果你打算使用另一個庫/框架,那麼你會想要使用該庫的/框架的API。

+0

這是很好..謝謝 – john