javascript - 如何在 jQuery 中获取两个事件之间的时间差?

标签 javascript jquery html

我试图查找它,但我遇到了一段我不太理解的代码。

<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(last) 是什么意思?它是一个变量,所以怎么可能 真/假?
  2. 在分配last 之前如何计算tdiff?
  3. 为什么 last 出现在 if 和 else 语句之后而不是之前?

最佳答案

1- what does if(lastt) mean?

该语句检查是否设置了 last 变量。在第一次点击时,该值为 null(一个虚假值),该函数只是添加一个 p 元素。

it is a variable so how could it be true/false?

变量可以有 bool 值。为什么不?但这里的重点不是检查 bool 值。 if 语句用于检查值是否已设置,即 last 是否为 null。时间戳是一个数字,任何不是 0 的数字在 JavaScript 中都被视为真值。

2-how tdiff is calculated before lastt is assigned?

这实际上并没有发生。第一次点击时,处理程序不计算任何内容。

3-why last comes after if and else statements and not before?

检查 2 个时间戳的差异需要 last 的存在。新的last会在handler的下一次调用中使用,所以需要在计算之后设置。

关于javascript - 如何在 jQuery 中获取两个事件之间的时间差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37100279/

相关文章:

javascript - html5 Canvas 点击贝塞尔路径形状检测

javascript - 如何在 HTML5 canvas 中为树制作动画

php - 无法通过 jquery Ajax 在 laravel 5 中发布

javascript - 如何使用 Javascript 或 Jquery 将 UTC 转换为 CST

javascript - 我如何管理这个背景图像和类(class)的悬停行为?

html - 从 IMG 标签解析 "SRC"的 XPath?

html - 不确定 HTML 是否正在使用 CSS 文件,因为对 CSS 文件所做的更改不会显示在网页上。我该怎么办?

javascript - 如何使用纯 Javascript (ES6) 按 id 合并两个 json 对象值

javascript - 如何自定义 FirebaseUI-Web 的主题

css - 在 float div 和底部 div 之间放置一个空格