Javascript 如何在某个值停止计时器
我做了一个计时器,当你点击一个按钮时它就会启动。我希望计时器在时间值达到5时停止,但由于某些原因它不工作Javascript 如何在某个值停止计时器,javascript,html,Javascript,Html,我做了一个计时器,当你点击一个按钮时它就会启动。我希望计时器在时间值达到5时停止,但由于某些原因它不工作 let words=document.getElementById(“words”); let wordAr=[“The”,“quick”,“brown”,“fox”,“shopped”,“over”,“The”,“lazy”,“dog”]; 让textIn=document.getElementById(“输入”); 设定时器=0; 让时间=document.getElementById
let words=document.getElementById(“words”);
let wordAr=[“The”,“quick”,“brown”,“fox”,“shopped”,“over”,“The”,“lazy”,“dog”];
让textIn=document.getElementById(“输入”);
设定时器=0;
让时间=document.getElementById(“计时器”);
设wPM=0;
设wpm=document.getElementById(“wpm”);
让text=document.getElementById(“text”);
words.innerHTML=wordAr.slice(0,9).join(“”);
window.addEventListener(“向下键”),函数(键){
如果(key.keyCode==32){
for(设i=0;i<1;i++){
wPM+=1;
wpm.innerHTML=wpm;
};
};
});
让start=document.getElementById(“start”);
函数incTime(){
定时器++;
time.innerHTML=计时器;
};
函数initTime(){
设置间隔(增量时间,1000);
};
如果(计时器==5){
控制台日志(“完成”);
};代码>您可以使用clearInterval()
方法
在您的情况下:
let words = document.getElementById("Words");
let wordAr = ["The" , "quick" , "brown" , "fox" , "jumped" , "over" , "the" , "lazy" , "dog"];
let textIn = document.getElementById("Input");
let timer = 0;
let time = document.getElementById("Timer");
let wPM = 0;
let wpm = document.getElementById("WPM");
let text = document.getElementById("text");
let timerPid= null;
words.innerHTML = wordAr.slice(0,9).join(" ");
window.addEventListener("keydown", function(key){
if(key.keyCode == 32){
for (let i=0; i < 1; i++){
wPM+=1;
wpm.innerHTML = wPM;
};
};
});
let start = document.getElementById("start");
function incTime(){
timer++;
time.innerHTML = timer;
};
function initTime(){
timerPid= setInterval(incTime, 1000);
};
if(timer == 5){
clearInterval(timerPid);
};
let words=document.getElementById(“words”);
let wordAr=[“The”,“quick”,“brown”,“fox”,“shopped”,“over”,“The”,“lazy”,“dog”];
让textIn=document.getElementById(“输入”);
设定时器=0;
让时间=document.getElementById(“计时器”);
设wPM=0;
设wpm=document.getElementById(“wpm”);
让text=document.getElementById(“text”);
设timerPid=null;
words.innerHTML=wordAr.slice(0,9).join(“”);
window.addEventListener(“向下键”),函数(键){
如果(key.keyCode==32){
for(设i=0;i<1;i++){
wPM+=1;
wpm.innerHTML=wpm;
};
};
});
让start=document.getElementById(“start”);
函数incTime(){
定时器++;
time.innerHTML=计时器;
};
函数initTime(){
timerPid=设置间隔(增量时间,1000);
};
如果(计时器==5){
清除间隔(timerPid);
};
使用inincTime()
函数添加计时器条件。并使用clearInterval()
中断setInterval
var定时器=0;
函数incTime(){
定时器++;
控制台日志(计时器);
如果(计时器==5){
clearInterval(时间间隔);
console.log('breaked')
};
};
var time_int=“”;
函数initTime(){
time_int=设置间隔(增量时间,1000);
};
initTime()
在您的情况下,问题是如果(timer==5)检查只执行一次,而不是每次更新timer值时都进行检查。每次更新时,您都需要检查计时器的值。通过将检查移动到incTime()中更新方法
let words=document.getElementById(“words”);
let wordAr=[“The”,“quick”,“brown”,“fox”,“shopped”,“over”,“The”,“lazy”,“dog”];
让textIn=document.getElementById(“输入”);
设定时器=0;
让时间=document.getElementById(“计时器”);
设wPM=0;
设wpm=document.getElementById(“wpm”);
让text=document.getElementById(“text”);
words.innerHTML=wordAr.slice(0,9).join(“”);
window.addEventListener(“向下键”),函数(键){
如果(key.keyCode==32){
for(设i=0;i<1;i++){
wPM+=1;
wpm.innerHTML=wpm;
};
};
});
让start=document.getElementById(“start”);
函数incTime(){
定时器++;
time.innerHTML=计时器;
如果(计时器==5){
控制台日志(“完成”);
}
};
函数initTime(){
设置间隔(增量时间,1000);
};
您应该检查if(timer==5)
内部initTime()
不确定,但incTime函数中的if语句是否应该是?我刚刚尝试过,但它不起作用,我甚至尝试刷新页面!!当我把它放进incTime
谢谢你,当你把支票放进incTime()
里面时它会工作,但是由于你使用setInterval()
的原因,它会在每秒钟后继续工作。