【发布时间】:2020-03-06 16:53:37
【问题描述】:
当我点击开始按钮时,它会开始计数,但是当我刷新页面或重新启动浏览器时,它会停止计数,当我再次点击开始按钮时,它会继续计数。 我希望它只单击一次开始按钮并开始计数,每当我刷新页面或重新启动浏览器时,它仍会继续计数,直到我想停止它。
这是我的代码...
<script>
const pad = (num) => ("0" + num).slice(-2);
$(document).ready(function() {
$("#StartButton").click(function(){
var savedDate = +localStorage.getItem("date"), date = new Date();
console.log(savedDate)
if (savedDate && !isNaN(savedDate)) date = new Date(savedDate);
else date.setHours(0, 0, 0, 0);
var hours = date.getHours(),
minutes = date.getMinutes(),
seconds = date.getSeconds(),
$span = $('#countup');
var timer = setInterval(function() {
var day = date.getDate();
date.setSeconds(date.getSeconds()+1);
if (day != date.getDate()) {
alert("You're logged-in for 24 hours.");
clearInterval(timer);
localStorage.removeItem("date");
}
else {
$span.text(
pad(date.getHours()) + ":" +
pad(date.getMinutes()) + ":" +
pad(date.getSeconds())
);
console.log(date)
localStorage.setItem("date",date.getTime())
}
}, 1000);
});
$("#StopButton").click(function(){
alert("Stop..");
clearInterval(timer);
localStorage.removeItem("date");
});
});
</script>
<!DOCTYPE html>
<html>
<head>
<title>Countup persistently</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<span id="countup">00:00:00</span>
<button type="button" id="StartButton">Start</button>
<button type="button" id="StopButton">Stop</button>
</body>
</html>
【问题讨论】:
-
$("#StartButton").one(function(){...});. -
为什么要两次调用此行:date.setSeconds(date.getSeconds()+1);
-
@MarioBoss 哦对不起.. 删除了第一个。
标签: javascript html timer local-storage