原型Event.observe替代?

时间:2011-10-13 14:27:52

标签: javascript dom-events

我使用Event.observe方法绑定事件;此方法在Prototype库中定义。

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

我要从我的代码中删除Prototype。

普通JavaScript中有Event.observe的替代方法吗?

1 个答案:

答案 0 :(得分: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,那么你必须自己处理两个事件模型之间的差异。如果您打算使用其他库/框架,那么您将需要使用该库的/ framework的API。