作者iamshuichi (vincent)
看板Ajax
标题[问题] 弱弱的问个setInterval的问题
时间Sat Nov 19 00:47:31 2016
<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://webptt.com/cn.aspx?n=bbs/Ajax/M.1479487654.A.B9C.html
※ 编辑: iamshuichi (104.237.91.182), 11/19/2016 00:48:12
1F:→ aspdoctor: 把setInterval放到一个function 里 11/19 01:38
2F:→ Hevak: onClick里面要放function,可是你int是一个存有setInterval 11/19 11:05
3F:→ Hevak: 回传的物件的变数,而不是function,你onclick下去当然不会 11/19 11:05
4F:→ Hevak: 执行。 11/19 11:05
5F:→ Hevak: 所以2的问题单纯是你把回传的物件和function搞混 11/19 11:06
6F:→ Hevak: 试试看像这样: 11/19 11:08
7F:→ Hevak: 首先button那边onClick="playInterval()" 11/19 11:08
8F:→ Hevak: 後面定义一个function就叫playInterval来专门处理这个问题 11/19 11:09
9F:→ Hevak: var playTimer; 11/19 11:09
10F:→ Hevak: var playInterval = function () { 11/19 11:09
11F:→ Hevak: playTimer = setInterval(function () { 11/19 11:10
12F:→ Hevak: audio.play(); 11/19 11:10
13F:→ Hevak: }, 1000); 11/19 11:10
14F:→ Hevak: } 11/19 11:10
15F:→ Hevak: 这样只有你特地呼叫playInterval这个function的时候才会执 11/19 11:11
16F:→ Hevak: 行里面那些像是什麽setInterval之类的内容 11/19 11:11
17F:→ Hevak: 当然因为我上面变数名称有换过,clearInterval()里面也要传 11/19 11:11
18F:→ Hevak: 对应的变数名称才行 11/19 11:11
19F:→ iamshuichi: 可以了,非常感谢 ^ ^ 11/19 13:58