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 に答える