Javascript 我想点击按钮一次,每当我刷新页面时,计时器仍将继续计数
当我单击开始按钮时,它将开始计数,但当我刷新页面或重新启动浏览器时,它将停止计数,当我再次单击开始按钮时,它将继续计数我希望它只单击一次开始按钮,然后开始计数。每当我刷新页面或重新启动浏览器时,它仍将继续计数,直到我想停止为止。 这是我的密码Javascript 我想点击按钮一次,每当我刷新页面时,计时器仍将继续计数,javascript,html,timer,local-storage,Javascript,Html,Timer,Local Storage,当我单击开始按钮时,它将开始计数,但当我刷新页面或重新启动浏览器时,它将停止计数,当我再次单击开始按钮时,它将继续计数我希望它只单击一次开始按钮,然后开始计数。每当我刷新页面或重新启动浏览器时,它仍将继续计数,直到我想停止为止。 这是我的密码 常数pad=(num)=>(“0”+num).slice(-2); $(文档).ready(函数(){ $(“#开始按钮”)。单击(函数(){ var savedDate=+localStorage.getItem(“日期”),date=new dat
常数pad=(num)=>(“0”+num).slice(-2);
$(文档).ready(函数(){
$(“#开始按钮”)。单击(函数(){
var savedDate=+localStorage.getItem(“日期”),date=new date();
console.log(savedDate)
如果(savedDate&!isNaN(savedDate))日期=新日期(savedDate);
else date.setHours(0,0,0,0);
var hours=date.getHours(),
分钟数=日期。getMinutes(),
秒=日期。getSeconds(),
$span=$(“#倒计时”);
var timer=setInterval(函数(){
var day=date.getDate();
date.setSeconds(date.getSeconds()+1);
如果(day!=date.getDate()){
警报(“您已登录24小时。”);
清除间隔(计时器);
localStorage.removietem(“日期”);
}
否则{
$span.text(
pad(date.getHours())+“:”+
pad(date.getMinutes())+“:”+
pad(date.getSeconds())
);
console.log(日期)
localStorage.setItem(“日期”,date.getTime())
}
}, 1000);
});
$(“#停止按钮”)。单击(函数(){
警惕(“停止”);
清除间隔(计时器);
localStorage.removietem(“日期”);
});
});
坚持倒数
00:00:00
开始
停止
需要重写代码的几个部分。但实现这一点的方法是使用例如window.localStorage在客户机上存储计数器的状态
你要做的是:
*在页面加载时读取本地存储的标志
*如果设置了标志,则开始计数
*单击“切换此标志”并将其存储在localStorage中
const pad = num => ("0" + num).slice(-2);
const savedDate = localStorage.getItem("date");
let timer;
function start() {
let date = new Date();
console.log(savedDate);
if (savedDate) {
date = new Date(savedDate);
} else {
date.setHours(0, 0, 0, 0);
}
localStorage.setItem("date", date);
let $span = $("#countup");
timer = setInterval(function() {
let 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);
}
}, 1000);
}
function stop() {
alert("Stop..");
clearInterval(timer);
localStorage.removeItem("date");
}
$(document).ready(function() {
$("#StartButton").click(start);
$("#StopButton").click(stop);
if (savedDate) {
start();
}
});
它需要重写代码的几个部分。但实现这一点的方法是使用例如window.localStorage在客户机上存储计数器的状态 你要做的是: *在页面加载时读取本地存储的标志 *如果设置了标志,则开始计数 *单击“切换此标志”并将其存储在localStorage中
const pad = num => ("0" + num).slice(-2);
const savedDate = localStorage.getItem("date");
let timer;
function start() {
let date = new Date();
console.log(savedDate);
if (savedDate) {
date = new Date(savedDate);
} else {
date.setHours(0, 0, 0, 0);
}
localStorage.setItem("date", date);
let $span = $("#countup");
timer = setInterval(function() {
let 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);
}
}, 1000);
}
function stop() {
alert("Stop..");
clearInterval(timer);
localStorage.removeItem("date");
}
$(document).ready(function() {
$("#StartButton").click(start);
$("#StopButton").click(stop);
if (savedDate) {
start();
}
});
$(“#开始按钮”).one(function(){…})代码>。为什么要调用此行两次:date.setSeconds(date.getSeconds()+1)@哦,对不起。。删除了第一个。$(“#开始按钮”).one(function(){…})代码>。为什么要调用此行两次:date.setSeconds(date.getSeconds()+1)@哦,对不起。。删除了第一个。你能帮我做些什么吗?我添加了一些示例代码,有足够的空间让它更好思考你能帮我做些什么吗?我添加了一些示例代码,但有足够的空间让它更好