繁体   English   中英

ClearInterval() 不能立即工作

[英]ClearInterval() does not work immediately

我有一个轮播,它使用setInterval()每 4 秒在选项卡之间切换一次。 我现在想在单击任何特定选项卡时停止此自动切换。

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

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

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

setInterval之前有这个if (timeToStand)并且 timeToStand 从未定义过。

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

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

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

clearInterval期望从 setInterval 返回的唯一 id

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

stopVar = setInterval(...);

...

clearInterval(stopVar);

尝试这个!

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

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

清除间隔...

window.setTimeout(function(){

clearInterval(pid );

},2000);

感谢您纠正小提琴 RobH。 user1886419,如果您查看小提琴 jsfiddle.net/qjmDU/14,我会按照您的建议进行操作,但是自动切换仅在 1 个循环通过所有选项卡后停止,而不是在单击选项卡时立即停止。

timeToStand 是传入 initCarousel() 的变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM