2

我有这个代码

var varheight;
$('.item-content').load("content/content.html", function(){
    varheight = $('.item-content').css('height');
    $('.item-content').css({height: 0});
    $('.item-content').animate({'height': varheight}, 1000);
});

我想要它做的是加载容器中的内容,这样我可以在加载后得到容器的总大小,然后在用户看到它之前将高度设置为 0,然后慢慢地通过动画增加高度到它的大小。

看起来很简单,代码应该可以工作......但是,发生了一些奇怪的事情......如果我varheight用这样的警报检查值:

var varheight;
$('.item-content').load("content/content.html", function(){
    varheight = $('.item-content').css('height');
    alert(varheight);
    $('.item-content').css({height: 0});
    $('.item-content').animate({'height': varheight}, 1000);
});

我得到 0。不应该,因为我刚刚在 .item-content 中加载了很多内容

奇怪的是,如果我删除接下来的 2 行,就像这样:

var varheight;
$('.item-content').load("content/content.html", function(){
    varheight = $('.item-content').css('height');
    alert(varheight);
});

我得到了真正的价值(大约 1300 像素,这不是这里的重点)。

我不禁想知道,即使这些线还没有达到,这个值怎么会改变呢?如果该变量不再更改,并且最糟糕的是,警报出现在这些行之前,它们如何影响该变量的值?

我在这里疯了!

4

1 回答 1

0

显然,有另一个并行脚本正在运行,它在此之前将高度硬编码为 0,导致了问题!

脚本删除,问题解决。

于 2013-05-17T19:59:32.550 回答