Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.10.2012, 12:42
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Как отменить событие
С точки зрения хорошего тона в js, можно ли событие ставить на весь документ?

document.onclick = function (event) {
    if (event.target == xxx) {
        // что-то выполнить
    }
    else if (event.target == yyy) {
        // что-то выполнить
    }
    else {
        //отменить
    }
};


Событие стоит на весь документ, как это отразится на производительности, если документ большой?
Как сделать лучше?
Ответить с цитированием
  #2 (permalink)  
Старый 27.10.2012, 12:59
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от dmitry111
можно ли событие ставить на весь документ?
можно
Сообщение от dmitry111
как это отразится на производительности, если документ большой?
подозреваю, что либо никак, либо не существенно (если капать глубже)
Сообщение от dmitry111
Как сделать лучше?
а что надо-то?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 27.10.2012, 14:56
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от nerv_
а что надо-то?
да просто спросить хотел)
планирую объединить все события на клик в одно. Мне кажется код приобретет более читаемый вид.
Ответить с цитированием
  #4 (permalink)  
Старый 27.10.2012, 15:30
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

на клик ещё ладно, но не стоит делать так на mousemove)
а вот отменять события для всего документа - дурная практика
__________________
.ня
Ответить с цитированием
  #5 (permalink)  
Старый 27.10.2012, 15:52
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Основная задача для которой вешают обработчик события на весь документ - когда нужно обработать событие на однотипных объектах, которые могут появлятся и исчезать.
Например клик по всем ссылкам, можно уложить в один обработчик, и любые свежедобавленные ссылки также будут выполнять этот код, без необходимости назначать им личный обработчик.
При этом глобальный обработчик естественно не отменяет событие
Так работает jQuery.live

С точки зрения производительности, навешивание общего обработчика отъест меньше памяти, и меньше времени займет навешивание самого события.
Обработка события при этом будет чуть дольше(если проверять тип целевого объекта)
Ответить с цитированием
  #6 (permalink)  
Старый 27.10.2012, 18:03
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от dmitry111
С точки зрения хорошего тона в js, можно ли событие ставить на весь документ?
http://learn.javascript.ru/event-delegation

Сообщение от iMaxmaxmaximus
обычный у тебя тон, но я вешаю обработчики на window
Есть толк, только если использовать useCapture.

При использовании Bubbling лучше вешать на максимальную близость к элементам - общему родителю - <body>, например.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как заставить событие при resize сработать с небольшой задержкой один раз? mitiya Общие вопросы Javascript 3 21.10.2012 20:00
Как добавить событие на document в Iframe ? Deff Events/DOM/Window 23 14.07.2012 21:40
Как вставить в событие, указатель на объект, который получает это событие? Pacan228 Общие вопросы Javascript 2 04.07.2012 19:53
event.preventDefault(); отменить событие qwweras Events/DOM/Window 1 12.09.2009 03:48
Как повесить событие без редактирования файла? bilbas Общие вопросы Javascript 8 11.09.2009 15:17