我试图查找它,但我遇到了一段我不太理解的代码。
<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;
});
});
我的问题如下:
if(last)
是什么意思?它是一个变量,所以怎么可能 真/假?- 在分配
last
之前如何计算tdiff? - 为什么 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/