显示自上次点击以来已经过了多长时间?

lis*_*aro 1 javascript jquery

我想节省用户点击页面的时间.所以我可以稍后返回他多久前点击一个函数.

我认为它应该基本上这样工作:

var currentTime = new Date();
var lastClick = currentTime.getTime();
$("body").click(function () {
var lastClick = currentTime.getTime();
    });

function howlong() {
console.log('last click was: ' + currentTime.getTime() - lastClick + 'ms ago');
}
Run Code Online (Sandbox Code Playgroud)

但是,我不能让它工作.怎么一直回来0.我做错了什么?

Mat*_*att 5

  1. 您需要删除var处理程序中的from,否则您将在本地范围内lastClick 再次声明,并且您实际上从未设置过您认为的变量.

  2. 一个Date实例不更新.它的价值始终是它所构建的时间; 你将有一个新的做new Date()你想要一个新的每次现在.

考虑到这两个因素,以下内容应该有效;

var lastClick;
$("body").click(function () {
    lastClick = (new Date()).getTime();
});

function howlong() {
    console.log('last click was: ' + ((new Date()).getTime() - lastClick) + 'ms ago');
}
Run Code Online (Sandbox Code Playgroud)

注意周围的潜在WTF额外.这可以确保构造一个新的Date,并在其上调用,而不是被调用,然后被调用(这是错误的!).()new Date()getTime()Date().getTime()new

您还必须将数学-括在括号内howlong(),在字符串连接之前进行数学运算.