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中有没有其他选择?
是的,标准和传统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.