原型Event.observe替代?

joh*_*ohn 1 javascript dom-events

我用used Event.observe方法绑定一个事件; 此方法在Prototype库中定义.

Event.observe(clickElem, "click", function(event) {
    //operations
});
Run Code Online (Sandbox Code Playgroud)

我将从我的代码中删除Prototype.

Event.observe在纯JavaScript中有没有其他选择?

Jer*_*emy 5

是的,标准和传统IE事件处理程序:

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

}, false);

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

});
Run Code Online (Sandbox Code Playgroud)

通常会看到一些辅助函数来促进跨浏览器事件处理程序.

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.");
});
Run Code Online (Sandbox Code Playgroud)

如果您不打算使用Prototype,那么您必须自己处理两个事件模型之间的差异.如果您打算使用其他库/框架,那么您将需要使用该库的/ framework的API.