2014-03-05 168 views
-2

我有一个轮播使用setInterval()每隔4秒在标签之间切换。 我现在想停止这个自动切换点击任何特定的选项卡。ClearInterval()不能立即工作

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

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

您的问题是什么?请修理你的jsfiddle –

+0

请在把它扔给我们之前测试你的小提琴;) –

+0

在你的小提琴中,你甚至还没有包括jQuery – laaposto

回答

0

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

之前setInterval有这个if (timeToStand)和timeToStand永远不会被定义。

当你定义timeToStand它的作品。

0

看着原来的小提琴这不工作:http://jsfiddle.net/qjmDU/

setInterval返回刚才设置的时间间隔一个唯一的ID。

clearInterval预计从setInterval的

返回的唯一的ID,这样你的代码应该看起来像

stopVar = setInterval(...); 

... 

clearInterval(stopVar); 
0

试试这个!

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

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

明确的间隔......

window.setTimeout(function(){ 

clearInterval(pid); 

},2000); 
0

感谢纠正小提琴RobH。 user1886419,如果您查看小提琴jsfiddle.net/qjmDU/14,我按照您的建议做同样的事情,但是自动切换仅在所有选项卡循环1次后停止,而不是立即停止,只需单击一个选项卡。

timeToStand是在initCarousel()中传递的变量()

+0

有人还在线吗? – Sagarika

+0

我只想停止点击某个标签的自动切换,而不是在切换所有可用标签的循环之后。 JSFiddle的正确链接是jsfiddle.net/qjmDU/14 – Sagarika