#javascript #dom-events
#javascript #dom-события
Вопрос:
Я использую Event.observe
метод для привязки события; этот метод определен в библиотеке прототипов.
Event.observe(clickElem, "click", function(event) {
//operations
});
Я собираюсь удалить прототип из своего кода.
Есть ли какая-либо альтернатива для Event.observe
простого JavaScript?
Ответ №1:
Да, стандартные и устаревшие обработчики событий 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 этой библиотеки / фреймворка.