Как отменить событие
С точки зрения хорошего тона в js, можно ли событие ставить на весь документ?
document.onclick = function (event) {
if (event.target == xxx) {
// что-то выполнить
}
else if (event.target == yyy) {
// что-то выполнить
}
else {
//отменить
}
};
Событие стоит на весь документ, как это отразится на производительности, если документ большой? Как сделать лучше? |
Цитата:
Цитата:
Цитата:
|
Цитата:
планирую объединить все события на клик в одно. Мне кажется код приобретет более читаемый вид. |
на клик ещё ладно, но не стоит делать так на mousemove)
а вот отменять события для всего документа - дурная практика |
Основная задача для которой вешают обработчик события на весь документ - когда нужно обработать событие на однотипных объектах, которые могут появлятся и исчезать.
Например клик по всем ссылкам, можно уложить в один обработчик, и любые свежедобавленные ссылки также будут выполнять этот код, без необходимости назначать им личный обработчик. При этом глобальный обработчик естественно не отменяет событие Так работает jQuery.live С точки зрения производительности, навешивание общего обработчика отъест меньше памяти, и меньше времени займет навешивание самого события. Обработка события при этом будет чуть дольше(если проверять тип целевого объекта) |
Цитата:
Цитата:
При использовании Bubbling лучше вешать на максимальную близость к элементам - общему родителю - <body>, например. |
| Часовой пояс GMT +3, время: 11:34. |