2016-05-08 10 views
2

私はそれを調べようとしましたが、私は実際に理解していないコードの一部に来ました。jQueryの2つのイベントの時間差を取得する方法は?

<p>Count the number of milliseconds between the two click events on a paragraph </p> 
<div>Click on the above paragraph</div> 


$(document).ready(function() { 
    var lastt, tdiff; 
    $("p").click(function(event){ 
     if(lastt){ 
      tdiff = event.timeStamp - lastt; 
      $("div").append("Time since last event: " + tdiff + "<br>"); 
     }else{ 
      $("div").append("<br>Click again.<br>"); 
     } 
     lastt = event.timeStamp; 
    }); 
}); 

私の質問は次のとおりです。

  1. if(lastt)が何を意味するのでしょうか?変数なので、どうすれば true/falseになるのですか?
  2. lasttが割り当てられる前にtdiffが計算される方法は?
  3. なぜ最後にifとelse文が来るのですか?

答えて

1

1-(lastt)は何を意味するのか?

ステートメントは、lastt変数が設定されているかどうかを確認します。最初のクリックで値はnull(偽値)で、関数はp要素を追加するだけです。

それはどのように真/偽である可能性がありますか?

変数はブール値を持つことができます。何故なの?しかし、ここではポイントはブール値をチェックしていません。 ifステートメントは、値が設定されているかどうかを確認するために使用されます。つまり、lasttnullではありません。タイムスタンプは数字であり、0以外の数字はJavaScriptの真実値と見なされます。

2-tdiffは最終値が割り当てられる前に計算されますか?

これは実際には起こりません。最初のクリックでは、ハンドラは何も計算しません。

3つぎの理由は最後に来ますか?

差分が2タイムスタンプであるかどうかを確認するには、lasttの存在が必要です。新しいlasttは計算が必要である後にそれを設定し、ハンドラの次の呼び出しで使用されています。

+0

感謝! – Adam

+0

ため – undefined

0

最後に、&を保存するためにjQueryを使用しています。現在の時刻からの差異を特定して印刷します。

は、あなたの質問に答えるために:

  1. if(lastt)lasttが既に値を持っているかどうかを確認するために使用されます。

  2. tdifflasttが1回だけ計算されます。

  3. lasttは、毎回イベント時刻の終了を記録する場合は、その後に来ます。 (それが中に置かれた場合ならば、他の、それは両方に入れなければならないであろう。)

+0

アニメノンたくさんありがとうあなたは非常に歓迎されている@Adamあなたの答え – Adam

関連する問題