2

私は次のJavaScriptコードを持っています:

// timer code
    var count=120;
    var pars = 0;
    var counter=setInterval(timer, 1000); // will  run it every 1 second
    var redirect="index.php";

    function timer(){
      if (count <= 0){
         window.location = redirect;
      } else{
          if(pars == 1){

          } else {
            count=count-1;
          }
      }
      document.getElementById("timer").innerHTML=":" + count ;
    }

これはdiv#timerにタイマーを表示し、次のようにリンクをクリックして一時停止する必要があります。

$(".quad").click(function(){
    pars = 1;
});

私はjavascriptを初めて使用するため、この問題はグローバル変数とプライベート変数が原因であると思います。手伝ってくれませんか。

4

3 に答える 3

2

あなたのコードは私のために働きます。ドキュメントがロードされた後、.clickイベントが登録されていることを確認してください。

$(document).ready(
    $(".quad").click(function(){
        pars = 1;
    });
});

また、を使用してリダイレクトを行う必要があります

window.location.href = redirect;
于 2013-01-10T01:28:24.300 に答える
1

ここでもOKです。これは、他の人が参照しているonload関数を前提としています。

使用する方が良いです:

      if(pars != 1){
        count=count-1;
      }
于 2013-01-10T01:30:39.520 に答える
0

両方のコードスニペットが同じスコープで機能していることを確認してください。コールバック内にクリックハンドラーコードがある場合はdocument.ready、タイマーコードもコールバックに移動します。

于 2013-01-10T01:32:04.697 に答える