Может быть, я вообще что-то пропустил даже в обработке jQuery, но вот моя проблема.
Предположим, что есть привязка к событию, например
$(element).bind("mousemove", somefunc);
Теперь я хотел бы ввести новую привязку mousemove, которая не отменяет предыдущую, но временно исключает (отвязывает) ее. Другими словами, когда я связываю свою функцию, я должен быть уверен, что никакие другие функции никогда не будут выполняться для этого события, пока я не восстановил их.
Я ищу что-то вроде:
$(element).bind("mousemove", somefunc);
// Somefunc is used regularly
var savedBinding = $(element).getCurrentBinding("mousemove");
$(element).unbind("mousemove").bind("mousemove", myfunc);
// Use myfunc instead
$(element).unbind("mousemove", myfunc).bind("mousemove", savedBindings);
Конечно, somefunc не находится под моим контролем, или это бесполезно:)
Я понимаю, что можно связать несколько функций с одним и тем же событием и что выполнение этих функций невозможно заранее определить. Я знаю о прекращении распространения события и немедленного распространения событий, но я думаю, что они бесполезны в моем случае, поскольку порядок выполнения не может быть определен (но, возможно, я ошибаюсь).
Как я могу это сделать? заранее спасибо ~ Аки
EDIT: Мне нужно выделить это: мне нужно, чтобы ранее установленный обработчик (somefunc) не выполнялся. Я НЕ определяю этот обработчик, он может быть или может отсутствовать, но он установлен сторонним пользователем.
EDIT2: Хорошо, сейчас это невозможно, мне кажется, что мне нужен eventListenerList, который еще не реализован в большинстве браузеров. http://www.w3.org/TR/2002/WD-DOM-Level-3-Events-20020208/changes.html