看板 Ajax 關於我們 聯絡資訊
<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了? 新手發問,還請版上大大指點一二 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 104.237.91.182 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1479487654.A.B9C.html ※ 編輯: iamshuichi (104.237.91.182), 11/19/2016 00:48:12
aspdoctor: 把setInterval放到一個function 裡 11/19 01:38
Hevak: onClick裡面要放function,可是你int是一個存有setInterval 11/19 11:05
Hevak: 回傳的物件的變數,而不是function,你onclick下去當然不會 11/19 11:05
Hevak: 執行。 11/19 11:05
Hevak: 所以2的問題單純是你把回傳的物件和function搞混 11/19 11:06
Hevak: 試試看像這樣: 11/19 11:08
Hevak: 首先button那邊onClick="playInterval()" 11/19 11:08
Hevak: 後面定義一個function就叫playInterval來專門處理這個問題 11/19 11:09
Hevak: var playTimer; 11/19 11:09
Hevak: var playInterval = function () { 11/19 11:09
Hevak: playTimer = setInterval(function () { 11/19 11:10
Hevak: audio.play(); 11/19 11:10
Hevak: }, 1000); 11/19 11:10
Hevak: } 11/19 11:10
Hevak: 這樣只有你特地呼叫playInterval這個function的時候才會執 11/19 11:11
Hevak: 行裡面那些像是什麼setInterval之類的內容 11/19 11:11
Hevak: 當然因為我上面變數名稱有換過,clearInterval()裡面也要傳 11/19 11:11
Hevak: 對應的變數名稱才行 11/19 11:11
iamshuichi: 可以了,非常感謝 ^ ^ 11/19 13:58