2

我做了一个小javascript。像这样:

content.css('height', contentHeight, function() {
    alert("test");
     $("body").scrollTo("#main", 600);
});

我希望在设置内容高度后执行警报。但是我做错了什么?

4

5 回答 5

1

.css()功能是即时的。

content.css('height', contentHeight);
alert("test");
$("body").scrollTo("#main", 600);
于 2012-10-17T11:16:57.113 回答
0

使用动画,完成时调用回调。

content.animate({
    height: contentHeight
}, 0, function() {
    alert("test");
    $("body").scrollTo("#main", 600);
});
于 2012-10-17T11:29:02.667 回答
0

jquery css方法中的函数含义不同:

content.css('height', function(){
    return contentHeight;
});

内容是一个数组,上面的代码设置了这个数组中所有元素的高度。这个函数的用法可能是这样的:

content.css('height', function(index){
    return index * contentHeight;
});

在这种情况下,每个下一个元素的高度将增加 contentHeight 值。

于 2012-10-17T11:22:21.973 回答
0

尝试使用

content.animate(
    {height : 100}, 
    5000,
    function() {
        //Animation complete.
        alert("test");
        $("body").scrollTo("#main", 600);
    }
);
于 2012-10-17T11:30:01.530 回答
0

像这样的方法没有“完成”处理程序css()。它立即执行。

所以你必须编写如下代码:

content.css("height", contentHeight);
alert("test");
$("body").scrollTo("#main", 600);

但是,如果您需要在设置高度后添加一些延迟,您可以使用setTimeout()

content.css("height", contentHeight);
setTimeout(function() {
    alert("test");
    $("body").scrollTo("#main", 600);
}, 1000);   // 1000 is number of milliseconds
于 2012-10-17T11:17:10.300 回答