
27.12.2011, 23:11
|
 |
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Как удалить все обработчики события элемента
element.removeEventListener(type, listener, useCapture);
Для того, чтоб удалить какой-либо обработчик события, нужно иметь функцию, которая навешивалась на событие. Что делать, если все обработчики создавались, используя безымянные функции?
|
|

27.12.2011, 23:17
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
создать элемент заново, скопировав все атрибуты и все children.
ЗЫ был такой вопрос. но я не помню, cloneNode(true) помог или нет.. но раз в голове осел гавноспособ, значит, что не помог 
|
|

27.12.2011, 23:19
|
 |
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от melky
|
создать элемент заново, скопировав все атрибуты и все children.
|
Если хочется удалить конкретное событие, то такой способ не прокатит.
|
|

27.12.2011, 23:22
|
 |
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
FINoM, низзя. Только через собственные реализации.
|
|

27.12.2011, 23:23
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
а, да. это для всех событий.
предварительный ответ - нет. ведь для удаления одного из обработчиков вы должны знать, что удалять то будете ?
|
|

27.12.2011, 23:26
|
 |
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от melky
|
ведь для удаления одного из обработчиков вы должны знать, что удалять то будете ?
|
Понятно. Вот что значит jQuery головного мозга 
|
|

27.12.2011, 23:28
|
 |
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от FINoM
|
Понятно. Вот что значит jQuery головного мозга
|
 
|
|

27.12.2011, 23:37
|
 |
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от trikadin
|
Только через собственные реализации.
|
Как грамотно будет реализовать? Вижу такое решение: к элементу добавить свойство "eventHandlers" и в нем хранить объект с массивами событий, типа так:
node.eventHandlers = {
click: [function(){}, function(){}],
mouseover: [function(){}, function(){}]
...
}
Говнокод?
|
|

27.12.2011, 23:41
|
 |
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от FINoM
|
Говнокод?
|
Нет. Да все так делают, того же Резига почитать, или в код популярных (и не очень) библиотек посмотреть.
|
|

27.12.2011, 23:43
|
 |
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Ок, спасибо.
|
|
|
|