Прототип Event.observe альтернатива? - PullRequest
1 голос
/ 13 октября 2011

Я использую Event.observe метод для привязки события; этот метод определен в библиотеке прототипов.

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

Я собираюсь удалить Prototype из моего кода.

Есть ли альтернатива для Event.observe в простом JavaScript?

1 Ответ

5 голосов
/ 13 октября 2011

Да, стандартные и устаревшие обработчики событий 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 этой библиотеки / инфраструктуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...