[英]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.