在启动不起作用之前延迟功能

时间:2012-07-17 18:08:49

标签: jquery settimeout

我正在尝试延迟我在jquery脚本中启动的函数。我输入了一个settimeout,但由于某种原因没有采取,它打破了脚本的其余部分。提前感谢您提供的任何帮助。

JS

<script type="text/javascript">
    $(function () {
        $("#fullscreen_launch").click(function () {
            $("#fullscreen").animate({
                height: '100%',
                top: '0px',
            }, 950, setTimeout(function () {
                $('#fullscreen').load('http://www.klossal.com/portfolio/space_fullscreen.html');
            }, 2000);
            });
        });
    });
</script>

2 个答案:

答案 0 :(得分:2)

animate的最后一个参数是回调。 setTimeout不返回函数,它返回timeoutID(用于clearTimeout)。您需要将函数传递给animate

$(function () {
    $("#fullscreen_launch").click(function () {
        $("#fullscreen").animate({
            height: '100%',
            top: '0px',
        }, 950, function () {
            setTimeout(function () {
                $('#fullscreen').load('http://www.klossal.com/portfolio/space_fullscreen.html');
            }, 2000);
        });
    });
});

答案 1 :(得分:1)

我的代码正常运行,它位于此处:http://jsfiddle.net/VEXfJ/7/

单步执行代码的好方法是添加警报语句。

$(function()
{
    $("#fullscreen_launch").click(function()
    {
        alert("Clicked");

        $("#fullscreen").animate(
        {
            top: 0,
            height: 'toggle'
        }, 5000, function()
        {

            alert("animate complete");

            setTimeout(function()
            {
                alert("timeout");
                $('#fullscreen').load('http://www.klossal.com/portfolio/space_fullscreen.html');
            }, 2000);
        });
    });
});​