Javascript 显示自上次单击以来经过了多长时间?
我想节省用户点击页面的时间。所以我可以稍后返回他用函数单击的时间 我认为它基本上应该是这样工作的:Javascript 显示自上次单击以来经过了多长时间?,javascript,jquery,Javascript,Jquery,我想节省用户点击页面的时间。所以我可以稍后返回他用函数单击的时间 我认为它基本上应该是这样工作的: var currentTime = new Date(); var lastClick = currentTime.getTime(); $("body").click(function () { var lastClick = currentTime.getTime(); }); function howlong() { console.log('last click was: ' +
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');
}
但是我不能让它工作。howlong一直返回0。我做错了什么?lastClick仅在jQuery函数的范围内有效。您需要在该函数之外声明它
var currentTime = new Date();
var lastClick;
$("body").click(function () {
lastClick = currentTime.getTime();
});
function howlong() {
console.log('last click was: ' + currentTime.getTime() - lastClick + 'ms ago');
}
lastClick仅在jQuery函数的范围内有效。您需要在该函数之外声明它
var currentTime = new Date();
var lastClick;
$("body").click(function () {
lastClick = currentTime.getTime();
});
function howlong() {
console.log('last click was: ' + currentTime.getTime() - lastClick + 'ms ago');
}
使用全局变量:
var lastEvent;
$('selector').bind('event', function() {
lastEvent = new Date().getTime(); //new Date() is important here
});
使用全局变量:
var lastEvent;
$('selector').bind('event', function() {
lastEvent = new Date().getTime(); //new Date() is important here
});
var
,否则您将在本地范围中再次声明lastClick
,并且您永远不会实际设置您认为是的变量Date
实例不更新。它的价值将始终是它建造时的价值;每次你现在想要一个新的日期,你都必须做一个新的newdate()
var lastClick;
$("body").click(function () {
lastClick = (new Date()).getTime();
});
function howlong() {
console.log('last click was: ' + ((new Date()).getTime() - lastClick) + 'ms ago');
}
请注意新日期()
周围的潜在WTF额外()
。这可以确保构造一个新的日期,并在该日期上调用getTime()
,而不是调用Date().getTime()
,然后在该日期上调用new
(这是错误的!)
您还必须将数学-
封装在howlong()
内的括号中,以便在字符串连接之前进行数学运算
var
,否则您将在本地范围中再次声明lastClick
,并且您永远不会实际设置您认为是的变量Date
实例不更新。它的价值将始终是它建造时的价值;每次你现在想要一个新的日期,你都必须做一个新的newdate()
var lastClick;
$("body").click(function () {
lastClick = (new Date()).getTime();
});
function howlong() {
console.log('last click was: ' + ((new Date()).getTime() - lastClick) + 'ms ago');
}
请注意新日期()
周围的潜在WTF额外()
。这可以确保构造一个新的日期,并在该日期上调用getTime()
,而不是调用Date().getTime()
,然后在该日期上调用new
(这是错误的!)
您还必须将数学-
封装在howlong()
内的括号中,以便在字符串连接之前进行数学运算 您修改的代码
修改后的代码
请试试这个:
<script>
var currentTime = new Date().getTime();
var lastClick = "";
var presentClick = "";
document.onclick=function(e){
var evt=window.event || e
lastClick = currentTime;
presentClick = new Date().getTime();
idleTime = parseInt(presentClick) - parseInt(lastClick);
alert("Last Click = "+lastClick+"\n\nPresent Click = "+presentClick+"\n\nIdle Time = "+idleTime+" ms.");
currentTime = presentClick;
}
</script>
var currentTime=new Date().getTime();
var lastClick=“”;
var presentClick=“”;
document.onclick=函数(e){
var evt=window.event | | e
lastClick=当前时间;
presentClick=newdate().getTime();
idleTime=parseInt(presentClick)-parseInt(lastClick);
警报(“上次单击=“+lastClick+”\n\n当前单击=“+presentClick+”\n\n延迟时间=“+idleTime+”毫秒”);
currentTime=当前单击;
}
请尝试以下操作:
<script>
var currentTime = new Date().getTime();
var lastClick = "";
var presentClick = "";
document.onclick=function(e){
var evt=window.event || e
lastClick = currentTime;
presentClick = new Date().getTime();
idleTime = parseInt(presentClick) - parseInt(lastClick);
alert("Last Click = "+lastClick+"\n\nPresent Click = "+presentClick+"\n\nIdle Time = "+idleTime+" ms.");
currentTime = presentClick;
}
</script>
var currentTime=new Date().getTime();
var lastClick=“”;
var presentClick=“”;
document.onclick=函数(e){
var evt=window.event | | e
lastClick=当前时间;
presentClick=newdate().getTime();
idleTime=parseInt(presentClick)-parseInt(lastClick);
警报(“上次单击=“+lastClick+”\n\n当前单击=“+presentClick+”\n\n延迟时间=“+idleTime+”毫秒”);
currentTime=当前单击;
}
请注意,如果您将“选择器”和“事件”两个词更改为适合本例的内容,您的问题会更好,您需要付出更多努力。请注意,如果您将“选择器”和“事件”两个词更改为适合本例的内容,您的问题会更好,您需要付出更多努力。