Javascript.RU

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

Удаление обработчика события
Всем привет! Парюсь с событиями.

Имею:
var myhandler = function(param1, param2)
{
...
}

some_parent()
{
...
addhandler(object, 'click', function(){ myhandler() } );
}


Возникает вопрос как удалить данный обработчик? Косяк состоит в том что удалить его легко если биндить его на событие по имени функции, но так как функция принимает входящие параметры - я так сделать не могу. Товарищи знатоки, посоветуйте решение пожалуйста.

Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2011, 15:44
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Что за addhandler??? Вообще, ссылку на функцию можно получить из arguments.callee.
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2011, 16:15
Аспирант
Отправить личное сообщение для belkir Посмотреть профиль Найти все сообщения от belkir
 
Регистрация: 01.08.2011
Сообщений: 38

стандартный обработчик в обёртке для кросбраузерности обернул.
можно пример показать?
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2011, 16:44
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Примерно так:
addhandler(object, 'click', function(){
  myhandler()
  removehandler( this, event.type, arguments.callee );
} );
Только с this в ie есть проблемы.
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2011, 17:45
Аспирант
Отправить личное сообщение для belkir Посмотреть профиль Найти все сообщения от belkir
 
Регистрация: 01.08.2011
Сообщений: 38

А как-то подругому можно?
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2011, 17:51
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

А чем так не нравится?
Ответить с цитированием
  #7 (permalink)  
Старый 21.09.2011, 20:52
Аспирант
Отправить личное сообщение для belkir Посмотреть профиль Найти все сообщения от belkir
 
Регистрация: 01.08.2011
Сообщений: 38

несколько косо будет работать если биндить, скажем, onmousemove - т.к. на каждое движение курсора он будет биндить и тутже снимать бинд. А по стандарту он должен один раз забиндить и в конце процедуры снять бинд о как
Ответить с цитированием
  #8 (permalink)  
Старый 22.09.2011, 09:29
Аспирант
Отправить личное сообщение для belkir Посмотреть профиль Найти все сообщения от belkir
 
Регистрация: 01.08.2011
Сообщений: 38

Проблема решена - сам надумал. Всем спасибо!

window_floating_move.ivf_offset = ivf_offset;
window_floating_move.ivf_target_object = ivf_target;
engine_main.set_handler( document, 'mousemove', window_floating_move );

var window_floating_move = function(ivf_event)
{
  var funcObj = arguments.callee
  ivf_target_object = funcObj.ivf_target_object;
  ivf_offset = funcObj.ivf_offset;
 ...
}
Ответить с цитированием
  #9 (permalink)  
Старый 22.09.2011, 12:47
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

belkir,
А вот "это" типа не косо?!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
Проблема с вызовом функции в качестве обработчика G_M_S Общие вопросы Javascript 5 03.05.2011 11:55
Удаление обработчика событий! Даниэль Ноубл Общие вопросы Javascript 1 23.04.2010 17:12