Javascript 无法清除设置间隔
有人能帮我清除下面代码中的设置间隔吗。我已经厌倦了窗口。clearInterval(intervalListener)不工作Javascript 无法清除设置间隔,javascript,jquery,html,audio,Javascript,Jquery,Html,Audio,有人能帮我清除下面代码中的设置间隔吗。我已经厌倦了窗口。clearInterval(intervalListener)不工作 <audio id="audio1" controls="controls" ontimeupdate="init(this.currentTime)"; style="display:block;"> <source src="Audio.mp3" type="audio/mpeg"> <source src="Au
<audio id="audio1" controls="controls" ontimeupdate="init(this.currentTime)"; style="display:block;">
<source src="Audio.mp3" type="audio/mpeg">
<source src="Audio.ogg" type="audio/ogg">
<embed height="50" width="100" src="Audio.mp3"></embed>
</audio>
function init(val)
{
var audio=document.getElementById('audio1');
if(val==2)
{
var a=0;
intervalListener = self.setInterval(function()
{
alert(a);
if(a===8)
{
window.clearInterval(intervalListener);
}
a++;
}, 1000);
}
}
函数初始化(val)
{
var audio=document.getElementById('audio1');
如果(val==2)
{
var a=0;
intervalListener=self.setInterval(函数()
{
警报(a);
如果(a==8)
{
clearInterval(intervalListener);
}
a++;
}, 1000);
}
}
两件事:
self.setInterval
self中实际上是窗口alert(a)
可能在间隔停止JS执行时对其进行了监听,请尝试console.log(a)
另外,
setInterval
通常最好用setTimeout
function interval(a){
setTimeout(function(){
console.log(a);
if(a<8) interval(++a);
},1000);
}
interval(0);
功能间隔(a){
setTimeout(函数(){
控制台日志(a);
如果(a尝试在函数外部声明intervalListener:
var intervalListener;
function init(val) {
var audio=document.getElementById('audio1');
if(val==2) {
var a=0;
intervalListener = self.setInterval(function(){
alert(a);
if(a===8){
window.clearInterval(intervalListener);
}
a++;
}, 1000);
}
}
你需要在所有函数之外声明a
和intervalListener
,这样它们就在全局范围内。它工作得很好,伙计……这里我知道单独调用时它工作得很好。我需要在播放音频时在ontimeupdate上完成
var intervalListener;
function init(val) {
var audio=document.getElementById('audio1');
if(val==2) {
var a=0;
intervalListener = self.setInterval(function(){
alert(a);
if(a===8){
window.clearInterval(intervalListener);
}
a++;
}, 1000);
}
}