How to read bound hover callback functions in jQuery,
I used jQuery to set hover callbacks for elements on my page. I’m now writing a module which needs to temporarily set new hover behaviour for some elements. The new module has no access to the original code for the hover functions.
I want to store the old hover functions before I set new ones so I can restore them when finished with the temporary hover behaviour.
I think these can be stored using the
//save old hover behavior (somehow) $('#foo').data('oldhoverin',???) $('#foo').data('oldhoverout',???); //set new hover behavior $('#foo').hover(newhoverin,newhoverout);
Do stuff with new hover behaviour…
//restore old hover behaviour $('#foo').hover($('#foo').data('oldhoverin'),$('#foo').data('oldhoverout'));
But how do I get the currently registered hover functions from jQuery?
Shadow2531, I am trying to do this without modifying the code which originally registered the callbacks. Your suggestion would work fine otherwise. Thanks for the suggestion, and for helping clarify what I’m searching for. Maybe I have to go into the source of jquery and figure out how these callbacks are stored internally. Maybe I should change the question to “Is it possible to do this without modifying jquery?”
Calling an event
bind method (such as
hover) does not delete old event handlers, only adds your new events, so your idea of ‘restoring’ the old event functions wouldn’t work, as it wouldn’t delete your events.
You can add your own events, and then remove them without affecting any other events then use Event namespacing:
That’s the answer How to read bound hover callback functions in jQuery, Hope this helps those looking for an answer. Then we suggest to do a search for the next question and find the answer only on our site.
The answers provided above are only to be used to guide the learning process. The questions above are open-ended questions, meaning that many answers are not fixed as above. I hope this article can be useful, Thank you