0

我试图延迟我在 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>
4

2 回答 2

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);
        });
    });
});
于 2012-07-17T18:12:11.950 回答
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);
        });
    });
});​
于 2012-07-17T18:17:12.207 回答