我写了一个基于间隔每1秒更改一次css背景图像的函数,它的工作正常,问题是现在我想停止切换背景图像的功能,并且间隔设置会覆盖我。
我的代码:
var backgrounds = new Array(
'url(/srv/admin/img/announcement/envelope_blue.png)'
, 'url(/srv/admin/img/announcement/envelope_red.png)'
);
var current = 0;
function nextBackground() {
current++;
current = current % backgrounds.length;
jQuery("#open_msg_tlbr_img").css('background-image', backgrounds[current]);
jQuery("#open_msg_tlbr_img").css('width','35px');
jQuery("#open_msg_tlbr_img").css('height','35px');
}
setInterval(nextBackground, 1000);
jQuery("#open_msg_tlbr_img").css('background-image', backgrounds[0]);
我尝试使用:clearInterval();
我如何阻止这个怪物?
答案 0 :(得分:2)
使用变量保存setInterval
的返回值,然后将其清除:
var interval = setInterval(nextBackground, 1000);
clearInterval(interval);
答案 1 :(得分:1)
您不分配setInterval
返回的对象,以便稍后清除它,将setInterval
返回的对象传递给clearInterval
功能。请注意,您需要一个全局变量才能在多个函数中使用。
分配setInterval
intr = setInterval(nextBackground, 1000);
将setInterval引用对象传递给clearInterval
clearInterval(intr );
答案 2 :(得分:1)
setInterval()
会返回一个区间ID,您可以将其传递给clearInterval()
:
var nxtBckgrnd = setInterval(nextBackground, 1000);
/* later */
clearInterval(nxtBckgrnd );