Javascript 如何在某个值停止计时器

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

我做了一个计时器,当你点击一个按钮时它就会启动。我希望计时器在时间值达到5时停止,但由于某些原因它不工作

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);
};

使用in
incTime()
函数添加计时器条件。并使用
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()
的原因,它会在每秒钟后继续工作。