我有以下代码在函数内部起作用:
$('#MyPanel').stop().animate({ top: PanelTop }, 300);
但是,我想将div分配给一个对象,以便jquery不必每次都重新评估引用。
我有一个全局变量,然后我想在我的函数中使用它:
var ThePanel = $('#MyPanel');
ThePanel.stop().animate({ top: PanelTop }, 300);
什么都没发生。知道为什么吗?
感谢。
答案 0 :(得分:2)
解决方案是将全局变量声明为null,然后将div分配给document.ready函数中的对象变量,而不是在全局声明部分中。
<script>
var ThePanel = null;
$(document).ready(function () {
ThePanel = $('#MyPanel');
});
</script>
答案 1 :(得分:0)
“缓存”对象的代码是正确的。我怀疑其他事情正在发生......你确定第一段代码是否有效但第二段代码没有?
我会使用FireBug或内置的网络调试工具(比如在Chrome中)停止该行并查看ThePanel是否为空..
答案 2 :(得分:0)
使用$(ThePanel).stop...
,你离开了。据我所知,这仍将为您提供所需的性能增益