Mne*_*quo 5 javascript jquery callback
我使用 jQuery 为页面上的元素设置悬停回调。我现在正在编写一个模块,它需要为某些元素临时设置新的悬停行为。新模块无法访问悬停功能的原始代码。
我想在设置新的悬停功能之前存储旧的悬停功能,以便在完成临时悬停行为后可以恢复它们。
我认为这些可以使用jQuery.data()
函数存储:
//save old hover behavior (somehow)
$('#foo').data('oldhoverin',???)
$('#foo').data('oldhoverout',???);
//set new hover behavior
$('#foo').hover(newhoverin,newhoverout);
Run Code Online (Sandbox Code Playgroud)
做一些新的悬停行为......
//restore old hover behaviour
$('#foo').hover($('#foo').data('oldhoverin'),$('#foo').data('oldhoverout'));
Run Code Online (Sandbox Code Playgroud)
但是如何从 jQuery 获取当前注册的悬停功能?
Shadow2531,我试图在不修改最初注册回调的代码的情况下做到这一点。否则你的建议会很好。感谢您的建议,并帮助澄清我正在寻找的内容。也许我必须进入jquery的来源并弄清楚这些回调是如何在内部存储的。也许我应该将问题更改为“是否可以在不修改 jquery 的情况下执行此操作?”
调用事件bind
方法(例如hover
)不会删除旧的事件处理程序,只会添加新事件,因此“恢复”旧事件函数的想法行不通,因为它不会删除您的事件。
您可以添加自己的事件,然后删除它们而不影响任何其他事件,然后使用事件命名空间:http://docs.jquery.com/Events_ (Guide)#Namespacing_events
归档时间: |
|
查看次数: |
5897 次 |
最近记录: |