我的jQuery代码存在轻微问题。 我基本上有一个循环通过一组图像的计时器,它位于setInterval
上当我点击右侧或左侧控制器时,它会停止间隔并根据用户点击而不是自动淡化图像。
$('a.right').click(function () {
clearInterval(myInterval);
setTimeout(function () { slideshow(); }, 9000);
if (count < max - 1) {
$('div.feature-image').eq(count).fadeOut('1000', function () {
count++;
$('div.feature-image').eq(count).fadeIn('1000');
info++;
$('div.img-info').html(info + ' of ' + max + ' | ');
})
}
我使用setTimeout等待4秒然后继续循环周期。 虽然我不认为这是最优雅的方式,因为Jquery不知道停止if语句。有没有办法在setTimeout上停止if语句来执行它的功能?
答案 0 :(得分:0)
不确定我是否完全理解了这个问题,但是这样的事情
setTimeout(function () {
setTimeoutTriggered = true;
slideshow();
}, 9000);
if ( (count < max - 1) && !setTimeoutTriggered ) {
...
}
当然,您可以为setTimeoutTriggered提供更多语义名称。 并且最好避免全局变量:)
无论如何,我发现这个jQuery插件非常适合管理超时和间隔! http://plugins.jquery.com/project/timers