我有下面的代码在一个函数中工作:
$('#MyPanel').stop().animate({ top: PanelTop }, 300);
然而,我想把div分配给一个对象,这样jquery就不必每次都重新计算引用。
我有一个全局变量,然后我想在我的函数中像这样使用它:
var ThePanel = $('#MyPanel');
ThePanel.stop().animate({ top: PanelTop }, 300);
什么也不会发生。知道为什么吗?
谢谢。
解决方案是将全局变量声明为null,然后将div赋值给文档中的对象变量。准备函数,而不是在全局声明部分。
<script>
var ThePanel = null;
$(document).ready(function () {
ThePanel = $('#MyPanel');
});
</script>
您的"缓存"对象的代码是正确的。我怀疑另有隐情…你确定第一段代码可以工作,而第二段不行吗?
我会使用FireBug或内置的web调试工具(如Chrome)在该行上放置一个停止,看看ThePanel是否为空。
使用$(ThePanel).stop...
,你就离开了。据我所知,这仍将为您提供所需的性能增益