Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Функция срабатывания при наступлении события


Автор: barcelona 8.5.2008, 08:29
Здравствуйте.
Можно ли написать функцию, которая срабатывала бы при наступлении любого события на странице? Она бы проверяла тип и источник события, а потом действовала по обстоятельствам. Обработчик:
Код

window.onchange = function () {

}

не пашет в IE. Можно ли как-то навесить на окно функцию, которая бы выполняла некоторые действия?

Автор: Ghirik 9.5.2008, 07:44
Отковенно бандитские цели?

Автор: bars80080 12.5.2008, 10:49
почему бандитские? я б тоже не прочь узнать

по сути дела, это универсальная разгрузка html-разметки от всякого on...=""
в этом случае, мы просто подключаем стандартную функцию обработки события, а затем чем-нибудь простым (типа switch... case...) сделать лесенку действий

Автор: Fortop 12.5.2008, 13:06
bars80080, кто мешает повесить один общий обработчик на все элементы?

Пример для jQuery 

Код

$(document).ready(function () {
$().click(function (eventObj) {alert(eventObj)});
});


Автор: bars80080 12.5.2008, 13:33
а если без jquery, и как определить какой элемент стал инициатором события, и какое событие произошло?

Автор: Fortop 12.5.2008, 14:18
bars80080, если я правильно помню, то события в JavaScript либо всплывают, либо погружаются (в зависимости от модели браузера).
И соответственно проходят всю цепочку от document до целевого объекта.
Поэтому, возможно, будет достаточно повесить нужные обработчики на document. (надо поэксперементировать)

Ну, а источник события, по-моему храниться в самом объекте события smile

Добавлено через 1 минуту и 7 секунд
Да, уточняю. Для каждого события потребуется свой обработчик!

Т.е. для click, change, onmouseover - отдельные обработчики - тут ты не выкрутишься никак.

Автор: krundetz 12.5.2008, 15:22
А почему бы не попробовать реализовать слушателя событий?

Автор: bars80080 12.5.2008, 15:27
Цитата(krundetz @  12.5.2008,  15:22 Найти цитируемый пост)
слушателя событий? 

? по-подробней можно?

Автор: Ghirik 12.5.2008, 15:48
http://webo.in/articles/habrahabr/04-speed-up-events-handlers/

Автор: krundetz 13.5.2008, 10:45
Цитата(bars80080 @ 12.5.2008,  15:27)
по-подробней можно?

Я имел в реализовать шаблон проектирования слушатель(наблюдатель, Observer). Принцип тот же что и в статье ссылка на которую дана выше Ghirik

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)