Javascript函数延迟

时间:2012-10-17 11:15:38

标签: javascript jquery function timer

我制作了一个小小的javascript。像这样:

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

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

5 个答案:

答案 0 :(得分:1)

.css()功能是即时的。

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

答案 1 :(得分:0)

css()等方法没有'done'处理程序。它立即执行。

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

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

答案 2 :(得分:0)

jquery css方法中的函数意味着不同:

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

内容是一个数组,上面的代码为此数组中的所有元素设置高度。此功能的用法可能如下:

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

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

答案 3 :(得分:0)

使用animate,完成后调用回调。

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

答案 4 :(得分:0)

尝试使用

content.animate(
    {height : 100}, 
    5000,
    function() {
        //Animation complete.
        alert("test");
        $("body").scrollTo("#main", 600);
    }
);