[問題] 弱弱的問個setInterval的問題

作者: iamshuichi (vincent)   2016-11-19 00:47:31
<audio id="audio" src="1.mp3"></audio>
<input type="submit" onclick="int" />
<button onclick="clearInterval(int)">Stop interval</button>
<script>
var audio = document.getElementById("audio");
var int;
int = setInterval("play()", 1000);
function play() {
audio.play();
}
</script>
我想製作一個每秒響一次的程式
有2個問題想請教
1. 如何讓它不要載入後自動執行,等我點擊再開始播放?
2. 當我運行clearInterval之後,為什麼沒辦法再次執行setInterval了?
新手發問,還請版上大大指點一二
作者: aspdoctor (大崎)   2016-11-19 01:38:00
把setInterval放到一個function 裡
作者: Hevak (Arthow Eshes)   2016-11-19 11:05:00
onClick裡面要放function,可是你int是一個存有setInterval回傳的物件的變數,而不是function,你onclick下去當然不會執行。所以2的問題單純是你把回傳的物件和function搞混試試看像這樣:首先button那邊onClick="playInterval()"後面定義一個function就叫playInterval來專門處理這個問題var playTimer;var playInterval = function () {playTimer = setInterval(function () {audio.play();}, 1000);}這樣只有你特地呼叫playInterval這個function的時候才會執行裡面那些像是什麼setInterval之類的內容當然因為我上面變數名稱有換過,clearInterval()裡面也要傳對應的變數名稱才行
作者: iamshuichi (vincent)   2016-11-19 13:58:00
可以了,非常感謝 ^ ^

Links booklink

Contact Us: admin [ a t ] ucptt.com