簡體   English   中英

如何獲得jQuery中兩個事件之間的時間差?

[英]how to get time difference between two events in jQuery?

我試着查了一下,卻發現了一段我不太明白的代碼。

<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)是什么意思? 它是一個變量,所以它怎么可能是真/假?
  2. 在分配 lastt 之前如何計算lastt
  3. 為什么 last 出現在 if 和 else 語句之后而不是之前?

1- if(lastt) 是什么意思?

該語句檢查是否設置了lastt變量。 在第一次單擊時,該值為null (假值),該函數僅添加一個p元素。

它是一個變量,所以它怎么可能是真/假?

變量可以有布爾值。 為什么不? 但這里的重點不是檢查布爾值。 if語句用於檢查該值是否已設置,即lastt不為null 時間戳是一個數字,任何不為0的數字在 JavaScript 中都被視為真值。

2-如何在分配 lastt 之前計算 tdiff?

這實際上並沒有發生。 在第一次單擊時,處理程序不進行任何計算。

3-為什么最后在 if 和 else 語句之后而不是之前?

檢查 2 個時間戳的差異需要lastt的存在。 新的lastt用於處理程序的下一次調用,因此需要在計算后進行設置。

在給定的代碼段中,您使用 jQuery 存儲上次,然后找到差異(與當前時間)進行打印。

回答你的問題:

  1. if(lastt)用於檢查lastt已經有值。

  2. tdiff一次只計算lastt分配。

  3. lastt在 if else 之后記錄每次事件的結束時間。 (如果放在 if-else 中,則必須同時放在兩者中。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM