我创建了以下 fiddle :
当我没有手动选择幻灯片时它显示正常,它会根据setTimeout 自动更换幻灯片。但是,当我通过单击下面的三个点从三张幻灯片(在 fiddle 中)中选择一张幻灯片时,会导致输出显示不正确。我知道问题是由剩下的其他超时引起的。我试过使用 clearTimeout
但没有用。
请帮忙。
代码如下:
var check=0;
var Wwidth=$(window).width()-9;
$(document).ready(function () {
$('.contentContainer').css({'width':''+Wwidth+'px'});
$('.three').click(function () {
$('.container').animate({
'left': '-1120px'
});
clearTimeout(timer);
var timer=setTimeout(function () {$('.one').click();}, 6000);
});
$('.two').click(function () {
$('.container').animate({
'left': '-560px'
});
clearTimeout(timer);
var timer=setTimeout(function () {$('.three').click();}, 6000);
});
$('.one').click(function () {
$('.container').animate({
'left': ''+0+'px'
});
clearTimeout(timer);
var timer=setTimeout(function () {$('.two').click();}, 6000);
});
var timer=setTimeout(function () {$('.two').click();}, 6000);
});
最佳答案
您使用的变量 timer
是本地变量,因此当您调用 clear 时,它们是 undefined
。
在全局范围内添加 var timer
,使其成为全局变量,然后您就可以清除超时。
你可以在第一行这样写:
var timer;
var check=0;
var Wwidth=$(window).width()-9;
并从其他行的 var timer =
中删除 var
。
编辑:
像这样:
timer=setTimeout(function () {$('.one').click();}, 6000);
关于javascript - setTimeout() - 分割 slider 中的输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20587781/