setTimeout()-除法Slider中的输出不正确

setTimeout() - Improper output in division Slider

本文关键字:输出 不正确 Slider 除法 setTimeout      更新时间:2023-09-26

我创建了以下小提琴:

http://jsfiddle.net/kzQFQ/76/

当我不手动选择幻灯片时,它会显示正确的显示,它会根据setTimeout自动更改幻灯片。但是,当我通过点击下面的三个点从三张幻灯片中选择一张幻灯片(在小提琴中)时,会导致输出显示不正确。我知道这个问题是由于剩下的其他超时而引起的。我尝试过使用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;

并且从其它行中的CCD_ 6移除CCD_。

编辑:

像这样:

timer=setTimeout(function () {$('.one').click();}, 6000);