ClearInterval()不会立即生效

时间:2014-03-05 16:17:54

标签: javascript jquery javascript-events

我有一个Carousel,使用setInterval()每隔4秒在标签之间切换。 我现在想要在点击任何特定选项卡时停止此自动切换。

http://jsfiddle.net/qjmDU/10/是JS小提琴,我有我的html和jquery。 我猜这个问题是以下代码在错误的地方使用。请告知您认为合适的更正。感谢。

$(this).on("click", function (event) {
   console.log("After clear interval" + stopVar);
   clearInterval(stopVar);    
});

4 个答案:

答案 0 :(得分:0)

问题是你的间隔永远不会定义!

setInterval之前有if (timeToStand)并且永远不会定义timeToStand。

当您定义timeToStand时,它可以正常工作。

答案 1 :(得分:0)

看看有效的原始小提琴:http://jsfiddle.net/qjmDU/

setInterval会返回您刚设置的时间间隔的唯一ID。

clearInterval期望从setInterval

返回唯一ID

所以你的代码应该看起来像

stopVar = setInterval(...);

...

clearInterval(stopVar);

答案 2 :(得分:0)

试试这个!

var pid = setInterval(function(){ fnXPTO()},500);

function fnXPTO()
{
     // to do anything.... 
}

明确间隔......

window.setTimeout(function(){

clearInterval(pid );

},2000);

答案 3 :(得分:0)

感谢纠正小提琴RobH。 user1886419,如果你看小提琴jsfiddle.net/qjmDU/14,我的做法和你建议的一样,但是自动切换只在1个周期后通过所有标签停止,而不是在点击标签时立即停止。

timeToStand是在initCarousel()

中传递的变量
相关问题