Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как отлавливать все события 
:(
    Опции темы
zubr801
  Дата 17.12.2008, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.12.2007

Репутация: нет
Всего: нет



Есть возможность указать обработчик на onclick, onmouseDown и т.д.
А мне хотелось бы ловить одной и той же функцией любое событие на этом элементе и анализируя свойства event.type (в котором лежит имя события).
Можно ли это сделать как-нибудь попроще, чем перечислять все события типа: onclick="myFunc()" onmouseDown="myFunc()" и т.д.
PM MAIL   Вверх
MuToGeN
Дата 19.12.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Если пользуем jQuery, то...
Код
$('*').bind('click mousedown', function(event){
    alert('type='+event.type+', emitter='+this.tagName);
});



--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
IDVsbruck
Дата 19.12.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Можно еще пойти по пути, который нам предоставляет возможность перечислить все свойства, методы и события объекта:
for (var i in our_object) {}
Не хочется сильно углубляться, да и не приходилось так делать, но такое перечисление даст все об объекте, в том числе и его события, которые можно проверять в цикле: типа, это событие? - если да, то какой тип?
Повторюсь - это только идея.
PM MAIL   Вверх
MuToGeN
Дата 19.12.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Такая идея, как один обработчик всего для вся, приведет только к одному результату - стандартному сообщению браузера "Скрипт отжирает слишком много времени CPU, прибить его или пусть жрет дальше?". Так что на самом деле лучше так не делать.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
AndreySamuylik
Дата 26.12.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.3.2008

Репутация: нет
Всего: нет



Элементарно, делай так:

Код


function evt_handler_common(el, action) {
  reg_event_handler(el, "mousedown", function(event) { action(event) });
  reg_event_handler(el, "mouseup", function(event) { action(event) });
  reg_event_handler(el, "mouseover", function(event) { action(event) });
  reg_event_handler(el, "mouseout", function(event) { action(event) });
  reg_event_handler(el, "mousemove", function(event) { action(event) });
  reg_event_handler(el, "click", function(event) { action(event) });
  reg_event_handler(el, "keydown", function(event) { action(event) });
  reg_event_handler(el, "keyup", function(event) { action(event) });
  reg_event_handler(el, "keypress", function(event) { action(event) });
 // И т.д.
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.