怎么停止这个for循环中的settimeout

const gc=`在每个寂静的夜里我会想
在你的生命中留下阳光
陪你走过那山高水长
陪你一起生长
`
const t=document.getElementById("t")
const g=gc.split('\n')
for (let i=0;i<g.length;i++){ 
 var st =  setTimeout(
()=>{
t.innerHTML='\n'+g[i]+'\n'+g[i+1]+'\n'+g[i+2]+'\n'
},1000*i)
}
t.onmouseover=()=>{
    clearTimeout(st)
    return
    }
阅读 1.8k
1 个回答
const t = document.getElementById("t")
const g = gc.split('\n')
const sts = [];
for (let i = 0; i < g.length; i++) {
    sts.push(setTimeout(
        () => {
            t.innerHTML = '\n' + g[i] + '\n' + g[i + 1] + '\n' + g[i + 2] + '\n'
        }, 1000 * i));
}
t.onmouseover = () => {
    for (let i = 0; i < sts.length; i++) {
        clearTimeout(sts[i]);
    }
    return
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题