我想寫(xiě)一個(gè)輪播的js當(dāng)點(diǎn)擊按鈕時(shí)顯示下一張圖片,我是通過(guò)css3的過(guò)渡屬性去做的,動(dòng)畫(huà)執(zhí)行完成之后,再將設(shè)置的過(guò)渡屬性去掉。因?yàn)槭峭ㄟ^(guò)css3的過(guò)渡,因此去掉過(guò)渡屬性,必須是在動(dòng)畫(huà)完成之后進(jìn)行的我先使用了setTimeout,這個(gè)不行,如果發(fā)生連續(xù)點(diǎn)擊效果就會(huì)變亂。之后使用了setIntveal ? ?var donghua = "";function dianji(){if(donghua){ ?clearInterval(donghua); ?donghua = ""; ? ?}donghua = setInterval(function(){????console.log("1");? ? ?clearInterval(donghua); ?donghua = "";},5*1000);}點(diǎn)擊慢,或者時(shí)間設(shè)置的短,沒(méi)問(wèn)題,但是如果點(diǎn)擊較快就可能會(huì)出現(xiàn)不斷的進(jìn)行循環(huán),無(wú)法停止。是因?yàn)?引入的是外部的變量,變量在變,點(diǎn)擊過(guò)快的時(shí)候 ? 清除不掉循環(huán)該怎么做來(lái)避免這樣的情況
js 閉包,如何避免閉包,但是必須引入外部變量
咕咕問(wèn)
2016-06-01 16:22:52
