2012-09-04 30 views
0

闪烁我已经作出了转盘和使用javascript setInterval()功能用于与传送带固定间隔旋转图像。下面是我用了图像的setInterval()函数

var timeOut = 4000; 

function showSlide() { 
     //....script for showing image 
} 

function pauseSlide() { 

    setInterval(function(){showSlide();}, timeOut); 

} 

jQuery(document).ready(function() { 
     pauseSlide(); 
}); 

脚本现在的问题是,当我有再次改变浏览器选项卡,几分钟后,旋转木马的浏览器,我看到传送带运行得更快,而不是默认的时间间隔是什么,图像会快速改变设定0时间间隔。请帮我解决这个问题。

+0

获取我们的工作小提琴,并接受了一些答案。 – Shmiddty

+0

这听起来像是你开始越来越多的间隔。你是从别的地方调用'pauseSlide'吗? – Guffa

+0

不只是在文件准备 – nilesh1006

回答

4

你必须摆脱第一区间的开始另一个之前,或者你开始一个以上的间隔同时工作(即为什么你开始看到它去“更快”)

做这个

var timeOut = 4000; 
var interval = 0; 

function showSlide() { 
     //....script for showing image 
} 

function pauseSlide() { 

    clearInterval(interval); 
    interval = setInterval(function(){showSlide();}, timeOut); 

} 

jQuery(document).ready(function() { 
    //NOW you can do multiple pauseSlide() calls 
    pauseSlide(); 
    pauseSlide(); 
    pauseSlide(); 
    pauseSlide(); 
    pauseSlide(); 
}); 
+1

这就是我要说的!我会+1它:) –

+0

@ComputerArts thx! – sajawikio

0

图像变化比预期的可能表明你有一个以上的呼叫pauseSlide(),以这种或那种方式更快。

document ready调用该函数的唯一的地方? showslide或任何地方的任何代码触发文档准备事件?如果您将alert()放入pauseSlide(),它会不止弹出一次?