javascript - setTimeout() - 分割 slider 中的输出不正确

标签 javascript jquery html settimeout

我创建了以下 fiddle :

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

当我没有手动选择幻灯片时它显示正常,它会根据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/

相关文章:

javascript - 从 firebase 快照中选择随机值

javascript - 组织外部 Javascript 文件

javascript - Jquery/JavaScript - 获取事件 URL,拆分

javascript - Jasmine 不适用于文档点击上的链接指令

Javascript 数组元素未通过函数设置?

javascript - 想要根据元素选择和元素大小选择创建行和列想要动态创建与下面的 HTML 表相同

jquery - 如何删除 anchor 的跳转?

javascript - 单击按钮显示不同的文本,重复第一个文本

html - FCC 产品着陆页图标问题

javascript - select2-selecting 事件没有被触发