|
Модераторы: Sardar, Aliance |
|
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
Вот stopObserving и не работает(продолжается обработка mouseout и mouseover) Подскажите, пожалуйста, как побороть. --------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
izOne, вот здесь же все расписано, а именно - какие аргументы должен получить метод для правильной работы...
|
|||
|
||||
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
AKS,
Я читал эту документацию и не понял что передавать в качестве observer в stopObserving(element, name, observer, useCapture) когда вешается на обсервинг не конкретная функция, а анонимная. --------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
izOne, Вы можете передать ссылку на анонимную функцию, хотя в вашем случае нет необходимости использовать ссылки. Можно так:
|
|||
|
||||
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
AKS,
Вы привели пример с именованой функцией, но вопрос был в другом ;). И что значит
если она анонимная? --------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Возможно удивлю, но в принципе JS нет анонимных и именованных функций. Есть значение "функция" (value), такое же как строка или число. Есть переменная, содержащая функцию, также как любое другое значение. Обращение "по имени" к функции это просто выполнение значения-функции в переменной под конкретным именем (перепиши туда другое значение что бы было ясней). Вывод: разницы между "анонимными" и "не анонимными" функциями нет. Что бы удалить обработчик нужно иметь на него ссылку. Передавая null или любую другую функцию ты пытаешься удалить null или эту функцию, а не обработчик зарегистрированный ранее. Таким образом можно регистрировать массу обработчиков и не думать, что кто то может его удалить, разумный подход.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
Sardar,
Ок. Тогда несколько иначе переформулиря(как удалить обсервер имея казатель на функцию я знал, спасибо что два раза показали ;)).
конкретно для этого кода(допустим я к его изменению не имею доступа или он закодирован) я могу удалить обработчик mousemove для $('imagemap')? --------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Никак.
P.S. Если Вы не имеете "доступа", то о чем вообще речь? Это сообщение отредактировал(а) AKS - 14.2.2007, 16:33 |
|||
|
||||
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
AKS,
допустим я к его изменению не имею доступа или он закодирован --------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
izOne, нет, т.к. DOM 2 Event разрабатывался не для JS, а вообще как технология, потому думают о многозадачности и следовательно пытаются оставить как можно меньше способов выстрелить себе в ногу. Философия такова, если не ты ставил обработчик события, значит и не тебе его удалять
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
Sardar,
Ясно Возможно это и правильно... Sardar,
Получается таки что есть - анонимную нельзя удалить из listener'ов ;) AKS, Sardar - спасибо за обьяснения. --------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
В общем сделал так:
--------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Удалить-то можно, вот только prototype.js этого не умеет... |
|||
|
||||
izOne |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 232 Регистрация: 22.8.2003 Где: Украина, Киев Репутация: нет Всего: 4 |
AKS,
Ну тогда возвращаясь к вопросу: как? Пусть даже не через prototype, а чистым JS не имея указателя на функцию. Я не нашел решения --------------------
Успех ждет каждого, но иногда всю жизнь. |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Ну на самом то деле prototype.js вызывает .addEventListener из DOM 2 Event, так что либа умеет всё, что "чистым JS" можно сделать. А сделать этого нельзя и это хорошая фича дизайна -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |