如何在jquery中重新启动setInterval,以便在用户单击计数器时重新启动?

时间:2011-10-18 19:18:58

标签: javascript jquery

如何在jquery中重启setInterval,以便当用户点击计数器重启?

所以我创建了一个标签部分,以便在12秒后循环到下一个标签。但是,如果用户点击所需的标签,我想重新启动时间,以便用户获得12秒的新设置。

我是jquery的新手所以请详细解释。非常感谢。

$("li.tab").click(function () {


    $("li.tab").removeClass("select");
       $(".featured_content").hide(); //Hide all tab content
    var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
    $(activeTab).fadeIn(1600); //Fade in the active ID content
    $(this).addClass("select");





});

var refreshIntervalId = setInterval(function () {

    var lastChild = $('li.select').is(':last-child');

    if (lastChild) {

        $('li.tab').removeClass('select ')
        $("li.tab:first").addClass('select ');
        return false;

    } else {
        $("li.select").removeClass('select').next().addClass('select');
        return false;
    }

}, 12000);

2 个答案:

答案 0 :(得分:2)

使用clearInterval

$("li.tab").click(function () {
    // ...
    refreshIntervalId = clearInterval(refreshIntervalId);
    // setInterval again to re-start the 'timer'
    // ...
});

答案 1 :(得分:2)

//Stop
clearInterval(refreshIntervalId);

//Start again
setInterval(function () {
  ...
}, 12000)