我有一个Carousel,使用setInterval()
每隔4秒在标签之间切换。
我现在想要在点击任何特定选项卡时停止此自动切换。
http://jsfiddle.net/qjmDU/10/是JS小提琴,我有我的html和jquery。 我猜这个问题是以下代码在错误的地方使用。请告知您认为合适的更正。感谢。
$(this).on("click", function (event) {
console.log("After clear interval" + stopVar);
clearInterval(stopVar);
});
答案 0 :(得分:0)
问题是你的间隔永远不会定义!
在setInterval
之前有if (timeToStand)
并且永远不会定义timeToStand。
当您定义timeToStand
时,它可以正常工作。
答案 1 :(得分:0)
看看有效的原始小提琴:http://jsfiddle.net/qjmDU/
setInterval
会返回您刚设置的时间间隔的唯一ID。
clearInterval
期望从setInterval
所以你的代码应该看起来像
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()
中传递的变量