2 回答

TA貢獻(xiàn)101條經(jīng)驗(yàn) 獲得超107個(gè)贊
定時(shí)器設(shè)置之后要清除,需要利用它返回的ID值,調(diào)用clearInterval()這個(gè)函數(shù)才可以清除定時(shí)器。在你的代碼里,開(kāi)始時(shí)timer存的是1000毫秒的定時(shí)器的ID,而當(dāng)你更改為500毫秒的定時(shí)器時(shí),timer存的是500毫秒定時(shí)器的ID值,這時(shí)候你沒(méi)有辦法再獲取1000毫秒的定時(shí)器的ID值,清除的只有500毫秒的定時(shí)器。如果要達(dá)到想要的效果,可以將函數(shù)gai()改成這樣:
function?gai()?{ ????clearInterval(timer);?//此時(shí)timer的值還是1000毫秒定時(shí)器的ID值,先把它清除了 ????timer?=?setInterval("t()",500);??//再開(kāi)啟新的定時(shí)器,此時(shí)timer的值是500毫秒的定時(shí)器 }

TA貢獻(xiàn)211條經(jīng)驗(yàn) 獲得超152個(gè)贊
很簡(jiǎn)單,你點(diǎn)擊了時(shí)間開(kāi)始按鈕timer = setInterval("t()",1000);開(kāi)始跳動(dòng)
然后你沒(méi)有清除這個(gè)開(kāi)始按鈕創(chuàng)建的timer變量所指示的setInterval("t()",1000);定時(shí)器,就點(diǎn)擊那個(gè)更改時(shí)間間隔按鈕,又一次創(chuàng)建setInterval("t()",1000);定時(shí)器,并且把timer變量改成了第二次創(chuàng)建的,你的這種賦值法并不能清除掉你第一次點(diǎn)擊開(kāi)始創(chuàng)建的setInterval("t()",1000)定時(shí)器
所以當(dāng)你點(diǎn)擊停止的時(shí)候,那個(gè)第二次賦值給timer變量的定時(shí)器被清除掉了,但第一次的那個(gè)卻沒(méi)有清除
理解了的話,還請(qǐng)采納
添加回答
舉報(bào)