<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了?
新手發問,還請版上大大指點一二
作者:
Hevak (Arthow Eshes)
2016-11-19 11:05:00onClick裡面要放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()裡面也要傳對應的變數名稱才行