clearTimeout不工作?

时间:2013-11-18 06:07:42

标签: jquery

我正在完成我的任务。 现在我有一个动画横幅,循环通过不同的图像。 每个功能都链接到一个图像。现在一切正常。只是当我尝试清除计时器(停止循环图像)时,id'contact'的元素是mouseOver,我无法清除超时,它仍然保持循环。请帮忙。

var timer;

function cycle() {
    contact();
    timer = setTimeout("$('#contact').removeClass('hovered')", 2000);
    timer = setTimeout("photoGallery()", 2000);
    timer = setTimeout("$('#photoGallery').removeClass('hovered')", 4000);
    timer = setTimeout("programmes()", 4000);
    timer = setTimeout("$('#programmes').removeClass('hovered')", 6000);
    $("#contact").hover(function () {
        clearTimeout(timer)
    });
    timer = setTimeout("cycle()", 6000);
}

1 个答案:

答案 0 :(得分:2)

您每次都会覆盖timer

var timer;

function cycle() {

    contact();

    timer = setTimeout(function () {
        $('#contact').removeClass('hovered');
        photoGallery();
        timer = setTimeout(function () {
            $('#photoGallery').removeClass('hovered')
            programmes();
            timer = setTimeout(function () {
                $('#programmes').removeClass('hovered')
                programmes();
                cycle()
            }, 2000);
        }, 2000);
    }, 2000);


}

$("#contact").hover(function () {
    clearTimeout(timer)
});