Добавить мой обработчик событий перед существующим обработчиком - PullRequest
5 голосов
/ 03 июня 2011

Предположим, есть элемент <img>, который имеет некоторый обработчик события onclick . Например, онклик делает alert("OldEventHandler").

Я бы хотел добавить свой обработчик событий там, до существующего . Например, моя функция-обработчик событий alert("NewEventHandler").

Итак, при нажатии я хотел бы видеть всплывающее окно «NewEventHandler», а затем всплывающее окно «OldEventHandler».

Это должно быть реализовано в чистом JavaScript; нет jQuery Пожалуйста.

Ответы [ 2 ]

12 голосов
/ 03 июня 2011

Вы можете сохранить оригинальный обработчик, а затем вызвать его после того, как ваш будет сделан:

var oldHandler = myElement.onclick;

myElement.onclick = function() {
    // do your stuff here
    ...

    // then call the original
    oldHandler.apply(this, arguments);
}
0 голосов
/ 03 июня 2011

Другим подходом к этой проблеме может быть создание универсального обработчика событий , который хранит массив функций в некотором предопределенном порядке. При возникновении события onclick() вы можете вызывать нужные вам функции в указанном порядке.

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