Javascript.RU

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

Нужно ли удалять события в js?
После того как событие выполнило свою работу и больше не нужно обязательно ли его удалять?

Вот есть кнопка, при клике возникает сообщение, предположим выводит "да" и "нет" - к ним привязано событие. Когда пользователь выберет вариант сообщение пропадет, но событие останется.

Нужно ли за этим следить?
Ответить с цитированием
  #2 (permalink)  
Старый 26.11.2012, 09:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от dmitry111
Нужно ли за этим следить?
Все зависит от алгоритма...
Если возможна повторная обработка - не трогать. Если нет - удалять или "прятать" сам источник возникновения события...
Ответить с цитированием
  #3 (permalink)  
Старый 26.11.2012, 11:41
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от dmitry111
Нужно ли удалять события в js?
Не встречал, чтобы удаляли события. Это возможно?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #4 (permalink)  
Старый 26.11.2012, 12:00
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от iGodOfAllMaxmaxmaximus
removeEventListener, а вообще толсто и не смешно
Ты удалил обработчик а не событие. Вопрос задан иначе. Учимся правильно задавать вопросы. Всё таки ресурс не философский, а программистский.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #5 (permalink)  
Старый 26.11.2012, 12:08
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от Gozar Посмотреть сообщение
Ты удалил обработчик а не событие. Вопрос задан иначе. Учимся правильно задавать вопросы. Всё таки ресурс не философский, а программистский.
во-во, через ж.. вопросы задают(
Ответить с цитированием
  #6 (permalink)  
Старый 26.11.2012, 13:08
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от dmitry111
Нужно ли за этим следить?
заместо тысячи обработчиков клика по кнопкам "да", "нет" лучше повесить один на родителя - window, например.
Ответить с цитированием
  #7 (permalink)  
Старый 26.11.2012, 13:31
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Gozar, Shaci,

Обработчик это функция, которая реагирует на событие.
Удаляется событие на которое вешается обработчик (функция)


Сообщение от iGodOfAllMaxmaxmaximus
Ты сам решаешь нужно или нет. Пагубные последствия - миллибайты памяти. Если те похер - не следи, не похер - следи.
узнать бы что дороже: создавать/удалять событие при каждой необходимости или повесить один раз и держать его в памяти?
Ведь событий может быть очень много и если их не утилизировать то они так и будут занимать память, разве нет?
Ответить с цитированием
  #8 (permalink)  
Старый 26.11.2012, 14:41
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 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.
Ответить с цитированием
  #9 (permalink)  
Старый 26.11.2012, 15:09
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 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.
Ответить с цитированием
  #10 (permalink)  
Старый 26.11.2012, 15:41
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Gozar,

e - это объект который возвращает браузер как реакцию на событие, разве нет?

Под событиями я понимаю click, mouseover, mousemove и прочие


да и метод removeEvent в перевода значит "удалить событие"


Я тоже сначала хотел назвать тему "удалить обработчик", но обработчик это функция, которая может быть использована не только с событием, зачем ее удалять?


Правильно тогда было бы сказать: удалить реакцию браузера на событие или как-то так))

Последний раз редактировалось dmitry111, 26.11.2012 в 16:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод текста из JS файла в атрибут div на html страничке. help Kreol Общие вопросы Javascript 11 15.12.2012 13:08
Нужно решить две не сложных задачи eropov Работа 1 23.06.2012 17:09
Значение события Paste klimashkin Events/DOM/Window 1 13.11.2010 17:30
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 08:19
Нужно с помощью JS записывать данные в БД d!mm Общие вопросы Javascript 2 01.11.2008 18:36