作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在 Javascript 上构建自定义 slider ,我希望每次用户单击 slider 的 div 时, slider 都应停止 X 秒。
我的代码是:
$(document).ready(function () {
var ciclo;
var index_slide = 1;
function startSlidercicle() {
ciclo = setInterval( function() {
// Slider code goes here
}, 3000);
}
//Here I start the slider animation
startSlidercicle();
//When the user clicks on a div called 'slide', stop the cycle and start again the animation cycle
$('.slide').on('click', function() {
clearInterval(ciclo);
setTimeout(startSlidercicle(), 3000);
});
});
但问题是每次我单击并停止 slider 时,循环开始的速度越来越快。我该如何解决?
最佳答案
代替:
clearInterval(ciclo);
setTimeout(startSlidercicle(), 3000);
或:
clearInterval(ciclo);
setTimeout(startSlidercicle, 3000);
我把代码改成了:
clearInterval(ciclo);
startSlidercicle();
现在 slider 可以正常工作了。我认为,在前两个提案中,每次我点击 div 时,都会创建一个新函数,“重叠”在现有循环上,因此,看起来 slider 加速了,但它只是一个循环重新开始其他。
关于javascript - 为什么 setInterval() 周期每次都变快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18391551/
我是一名优秀的程序员,十分优秀!