Событие прототипа.наблюдать альтернативу?

#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 этой библиотеки / фреймворка.