【发布时间】:2013-11-01 11:55:56
【问题描述】:
我试图在单击“下一步”按钮时暂时暂停setInterval。目前它会停止当前的 setinterval,但 10 秒后不会再次启动。
我有一个简单的图像旋转器,它每 4 秒改变一次图像。单击“下一步”按钮时,我希望它暂停 10 秒的间隔,然后再次开始 4 秒的旋转。
这是目前的代码(已简化):
var ic = $('#imageContainer');
var numItems = $('.image').size();
var position = 0;
ic.css('left', '0px');
var inter;
function rotate() {
inter = setInterval(function () {
if (position == (numItems - 1)) {
console.log(position);
$('.image').first().insertAfter($('.image').last());
ic.css('left', '+=400px');
position--;
}
ic.animate({
left: "-=400px"
});
position += 1;
}, 4000);
}
rotate();
$('#next').click(function () {
clearInterval(inter);
nextInter = setInterval(function () {
rotate();
}, 10000);
clearInterval(nextInter);
});
【问题讨论】:
-
只是出于好奇,为什么要混合 animate 和 insert?
-
像这样的问题是一个很好的例子,说明为什么自动射击
setTimeout通常比setInterval更好。
标签: javascript jquery setinterval clearinterval