我使用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的情况下完成此操作?”