0

このカウンターを機能させる方法を模索しています。一定量のアニメーションが再生されたら、ページを更新したいと思います。私は自分のコードがダメだと知っています。私はこれについて教育を受けておらず、私は非常に新しいです。言うまでもなく、私が現在滞在している場所に集中するのは難しいことは言うまでもありません...とても素敵です。ここにあります:

$(document).ready(function () {
    function loop() {
        var p = 0;
        if (p = 3) {
            location.reload(true);
        } else {
            $("#p3").delay("1000").fadeIn("slow");
            $("#p3").delay("1000").fadeOut("slow", loop);
            p + 1;
        };
        loop();
    });
4

2 に答える 2

2

ステートメントは、比較演算子またはの代わりにif (p = 3)代入演算子を使用しています。したがって、に割り当てられ、その結果は真実であるため、ステートメントは実行されません。======p3else

また、p変数はloop()関数内で宣言されているため、関数が呼び出されるたびにリセットされます。その宣言を関数の直前に移動できます(ドキュメントレディハンドラー内に保持します。グローバルにする必要はありません)。

また、この行p + 1;は何もしません。結果をに戻す必要があるため、行は増加しません。pその省略形は、または単にです。pp = p + 1p += 1p++

最後に、投稿されたコードに構文エラーがあります。関数の終了が欠落して}loop()ます。関数を終了してから呼び出すことが目的だと思いますので、次のようにします。

$(document).ready(function () {
    var p = 0;  // <--- moved outside function
    function loop() {
        if (p === 3) {   // <-- changed = to ===
            location.reload(true);
        } else {
            $("#p3").delay("1000").fadeIn("slow");
            $("#p3").delay("1000").fadeOut("slow", loop);
            p++; // <-- changed from p + 1
        };
    } // <--- this is the missing bracket
    loop();
});
于 2013-02-03T12:16:22.007 に答える
1

私はいくつかの仮定を立て、あなたが望むものであると私が信じるものを書きました、コードはテストされていません。

次のように変更します。

$(document).ready(function () {
    var globalP = 0;
     //this is called when fadeOut completes.
    function fadeComplete() {
       if (globalP == 3) {//if it is 3 reload..
            location.reload(true);
        } else {
            globalP++;//increment counter 
            animate();//start animation again...
        }
    }
    function animate() {
       //start fading in...
       $("#p3").delay("1000").fadeIn("slow", function() {
           //start fading out when the fadeIn completes.
            //should this happen? Since you're fading in the SAME element.
          $("#p3").delay("1000").fadeOut("slow", fadeComplete);
       });
    };
    animate();
});
于 2013-02-03T12:09:00.617 に答える