возможно я что-то упускаю даже из-за обработки в jQuery, но вот моя проблема.
Давайте предположим, что есть какая-то привязка к событию, например
$(element).bind("mousemove", somefunc);
Теперь я хотел бы ввести новую привязку перемещения мыши, которая не отменяет предыдущую, но временно исключает (отменяет привязку) ее. Другими словами, когда я связываю свою функцию, я должен быть уверен, что никакие другие функции никогда не будут выполняться для этого события, пока я не восстановлю их.
Я ищу что-то вроде:
$(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 не находится под моим контролем, или это было бы бесполезно:)
Мое понимание того, что возможно связать несколько функций с одним и тем же событием и что выполнение этих функций не может быть предопределено заранее.
Мне известно о прекращении распространения событий и немедленном распространении событий, но я думаю, что они бесполезны в моем случае, так как порядок выполнения не может быть определен (но, возможно, я неправильно понимаю).
Как я могу это сделать?
заранее спасибо
~ Aki
РЕДАКТИРОВАТЬ: Мне нужно выделить это: мне нужно, чтобы ранее установленный обработчик (somefunc) не выполнялся. Я НЕ определяю этот обработчик, он может присутствовать или не присутствовать, но он установлен сторонним пользователем.
EDIT2: Хорошо, сейчас это невозможно, я думаю, что мне нужен eventListenerList, который еще не реализован в большинстве браузеров. http://www.w3.org/TR/2002/WD-DOM-Level-3-Events-20020208/changes.html