![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]()
Ситуация следующая. Работаю с динамическим созданием/удалением событий. Необходимо удалять конкретные привязанные события.
Простейший пример логики (хоть он на jquery, но смысл понятен): Код:
Пример логики, как мне нужно: Код:
Подозреваю, что необходимо использовать замыкания для сохранения состояния переменныой-функции foo. Но как это записать никак не пойму. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 30.01.2009
Сообщений: 418
|
![]() Код HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script language="JavaScript" src="http://jqbook.narod.ru/jquery-1.2.6.js"></script> <script> // Имеем две функции var foo = function() { alert("Раз"); }; var boo = function() { alert("Два"); }; $(document).ready(function(){ // Привязываем к одному элементу оба события $('#test').bind('mouseup',foo).bind('mouseup',boo); // Если сейчас нажать на элемент, то мы увидим два сообщения - "Раз" и "Два" }); function del() { $('#test').unbind('mouseup',foo); } function buf() { // Удаляем предыдущие привязанные события $('#test').unbind('mouseup',foo); // foo глобальна var foo100500 = function() { // foo100500 не глобальна alert("Раз 100500"); }; // Устанавливаем новые $('#test').bind('mouseup',foo100500); } </script> </head> <body> <span id="test">нажми на меня</span> <a href="#" onClick="del()">Удалить</a><br> <a href="#" onClick="buf()">Buf click</a> </body> </html> Последний раз редактировалось Lesha; 24.03.2012 в 16:38. |
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 05.03.2011
Сообщений: 60
|
![]()
Посути вам нужно сохранять эту переменную где-то чтобы снять событие именно это. Поэтому не использовать не глобальные перменные не получится.
Чтобы получить доступ именно к глобавльной, используйте window.foo обращение. Также стоит посмотреть в сторону того, чтобы просто снимать события, типа Код:
Мои статьи по веб-программированию http://pihpi.ru
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 05.03.2011
Сообщений: 60
|
![]()
Затирать событие onmouseup кстати можно и спомощью Jquery
http://kill-9.ru/jquery/jquery-bind-i-unbind/
Мои статьи по веб-программированию http://pihpi.ru
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
![]()
Виталий Желтяков, если честно, то я не очень понял) Несмотря на это осмелюсь предложить пару вариантов : )
Код:
Тишина – самый громкий звук
|
![]() |
![]() |
![]() |
#7 | ||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]() Цитата:
Цитата:
Задачка вроде бы элементарная, но... |
||
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]()
Всё... нашел решение. Необходимо использовать пространство имён. Для jQuery решение будет выглядеть так:
Код:
|
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 30.01.2009
Сообщений: 418
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
непонятная ошибка после выполнения программы | TotKtoNado | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 16 | 30.12.2011 18:46 |
Окно после выполнения запроса | mortal2010 | Microsoft Office Access | 6 | 25.02.2011 13:18 |
Обновление таблицы после выполнения селекта | Tatochka | Microsoft Office Access | 5 | 15.01.2010 10:40 |
Сохранение полученных данных после выполнения поиска | Pirat_of | Microsoft Office Access | 1 | 14.05.2009 08:38 |
Button после выполнения ProgressBar | }{oт@бь)ч | Общие вопросы Delphi | 7 | 25.01.2009 12:33 |