26.11.2012, 04:38
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
Нужно ли удалять события в js?
После того как событие выполнило свою работу и больше не нужно обязательно ли его удалять?
Вот есть кнопка, при клике возникает сообщение, предположим выводит "да" и "нет" - к ним привязано событие. Когда пользователь выберет вариант сообщение пропадет, но событие останется.
Нужно ли за этим следить?
|
|
26.11.2012, 09:54
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от dmitry111
|
Нужно ли за этим следить?
|
Все зависит от алгоритма...
Если возможна повторная обработка - не трогать. Если нет - удалять или "прятать" сам источник возникновения события...
|
|
26.11.2012, 11:41
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от dmitry111
|
Нужно ли удалять события в js?
|
Не встречал, чтобы удаляли события. Это возможно?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
26.11.2012, 12:00
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от iGodOfAllMaxmaxmaximus
|
removeEventListener, а вообще толсто и не смешно
|
Ты удалил обработчик а не событие. Вопрос задан иначе. Учимся правильно задавать вопросы. Всё таки ресурс не философский, а программистский.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
26.11.2012, 12:08
|
|
:-/
|
|
Регистрация: 28.09.2009
Сообщений: 1,126
|
|
Сообщение от Gozar
|
Ты удалил обработчик а не событие. Вопрос задан иначе. Учимся правильно задавать вопросы. Всё таки ресурс не философский, а программистский.
|
во-во, через ж.. вопросы задают(
|
|
26.11.2012, 13:08
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от dmitry111
|
Нужно ли за этим следить?
|
заместо тысячи обработчиков клика по кнопкам "да", "нет" лучше повесить один на родителя - window, например.
|
|
26.11.2012, 13:31
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
Gozar, Shaci,
Обработчик это функция, которая реагирует на событие.
Удаляется событие на которое вешается обработчик (функция)
Сообщение от iGodOfAllMaxmaxmaximus
|
Ты сам решаешь нужно или нет. Пагубные последствия - миллибайты памяти. Если те похер - не следи, не похер - следи.
|
узнать бы что дороже: создавать/удалять событие при каждой необходимости или повесить один раз и держать его в памяти?
Ведь событий может быть очень много и если их не утилизировать то они так и будут занимать память, разве нет?
|
|
26.11.2012, 14:41
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от dmitry111
|
Удаляется событие на которое вешается обработчик (функция)
|
Код в студию.
Повесь пожалуйста на click или mousemove вот эту функцию:
function A() {
alert(10);
}
Цитата:
|
addEventListener() registers a single event listener on a single target. The event target may be a single element in a document, the document itself, a window, or an XMLHttpRequest.
|
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
26.11.2012, 15:09
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
В ниже следующем коде ты собираешься делать e = null?
var top = document.getElementById('maintable-first');
function handler(e) {
alert(e.constructor); //[object MouseEvent]
//e = null;
}
top.addEventListener('click', handler, false);
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
26.11.2012, 15:41
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
Gozar,
e - это объект который возвращает браузер как реакцию на событие, разве нет?
Под событиями я понимаю click, mouseover, mousemove и прочие
да и метод removeEvent в перевода значит "удалить событие"
Я тоже сначала хотел назвать тему "удалить обработчик", но обработчик это функция, которая может быть использована не только с событием, зачем ее удалять?
Правильно тогда было бы сказать: удалить реакцию браузера на событие или как-то так))
Последний раз редактировалось dmitry111, 26.11.2012 в 16:37.
|
|
|
|