如何取消setTimeout?

时间:2015-12-22 13:51:36

标签: javascript twitter-bootstrap

我为自动编写了这个简单的Javascript,并手动隐藏了引导警报。

$(function () {
    $.ajaxSetup({ cache: false });
    $("[data-hide]").on("click", function () {
        $(this).closest("." + $(this).attr("data-hide")).hide();
    });
    window.setTimeout(function () {
        $(".alert").fadeTo(700).slideUp(700, function () {
            $(this).hide();
        });
    }, 5000);
});

我想在点击取消按钮时取消setTimeout。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

setTimeout会为您的计时器返回一个数字timeoutId。您可以将其传递给clearTimeout方法。

$(function () {    

    var t = window.setTimeout(function () {
        $(".alert").fadeTo(700).slideUp(700, function () {
            $(this).hide();
        });
    }, 5000);

    $("#yourHideButtonId").on("click", function () {           
      if(t!=null)
      {
          clearTimeout(t);
      }
    });

});

答案 1 :(得分:0)

启动计时器:

timer = window.setTimeout(  f , 5000);

清除它:

 window.clearTimeout(timer);