2

私は一連のアクションを実行しようとしていますが、ここで私のコードではアラートメッセージが最初に出力されますが、いくつかのアクションの後にそれを書きました。

これは私が試したフィドルです。http://jsfiddle.net/wggua/635/

   $(document).ready(function() { 
    var a=1;
    setTimeout(function() { 
        $('#dvData').fadeOut(); 
 }, 2000); 

    if(a==1)
    {
        alert("value i s 1");
    }
    else
    {
         alert("value is 0");   
    }
});

助けてください、

4

4 に答える 4

1

あなたのコードは言う:

「このフェードアウト機能を 2 秒で実行してください。何か警告してください。」

フェードアウト関数の実行後にアラートを表示する場合は、そのコードを 2 秒で実行される関数内に配置する必要があります。

于 2013-05-09T11:46:14.387 に答える
1

setTimeoutとのfadeOut呼び出しはどちらも非同期であるため、これらのいずれかが完了する前にアラートが発生します。アニメーションが完了したときに実行されるフェードアウト メソッドにコールバック関数を渡すことができます ( docsを参照)。このようなもの:

 $(document).ready(function() { 
    var a=1;
    setTimeout(function() { 
        $('#dvData').fadeOut('slow', function() {
            // This function will execute when the fade out animation is complete
            if(a==1)
            {
                alert("value i s 1");
            }
            else
            {
                 alert("value is 0");   
            }
        }); 
 }, 2000); 
});
于 2013-05-09T11:47:36.947 に答える
0

タイムアウトでアラートを表示したいということですか? もしそうなら、あなたのコードは次のようにする必要があります:-

 $(document).ready(function() { 
    var a=1;
    setTimeout(function() { 
        $('#dvData').fadeOut(); 
    if(a==1)
    {
        alert("value i s 1");
    }
    else
    {
         alert("value is 0");   
    }

    }, 2000); 


});

http://jsfiddle.net/wggua/637/

あなたの例の if ステートメントは、それらを止めるものがないため、ドキュメントの準備が整うとすぐに実行されます。プログラムは上から順に実行されます。

または、フェードアウトが完了した後にアラートを表示する場合は、次のコードを実行できます:-

$(document).ready(function() { 
    var a=1;
    setTimeout(function() { 
        $('#dvData').fadeOut(400,function() {
            if(a==1)
            {
                alert("value i s 1");
            }
            else
            {
                 alert("value is 0");   
            }

        }); 

 }, 2000); 

http://jsfiddle.net/wggua/638/

于 2013-05-09T11:48:07.277 に答える