Я использовал jQuery для установки обратных вызовов для элементов на моей странице. Сейчас я пишу модуль, который должен временно установить новое поведение при наведении на некоторые элементы. Новый модуль не имеет доступа к исходному коду для функций наведения.
Я хочу сохранить старые функции наведения перед тем, как устанавливать новые, чтобы я мог восстановить их после завершения режима временного наведения.
Я думаю, что их можно сохранить с помощью функции jQuery.data()
:
//save old hover behavior (somehow)
$('#foo').data('oldhoverin',???)
$('#foo').data('oldhoverout',???);
//set new hover behavior
$('#foo').hover(newhoverin,newhoverout);
Делайте вещи с новым поведением при наведении ...
//restore old hover behaviour
$('#foo').hover($('#foo').data('oldhoverin'),$('#foo').data('oldhoverout'));
Но как мне получить в настоящий момент зарегистрированные функции наведения из jQuery?
Shadow2531, я пытаюсь сделать это без изменения кода, который изначально регистрировал обратные вызовы. В противном случае ваше предложение будет работать нормально. Спасибо за предложение и за то, что помогли уточнить, что я ищу. Может быть, я должен пойти в источник jquery и выяснить, как эти обратные вызовы хранятся внутри. Может быть, мне следует изменить вопрос на «Возможно ли это сделать без изменения jquery?»