我该如何修复这个jQuery消息栏功能?

时间:2012-11-11 17:40:07

标签: javascript jquery

function loader_bar(msg,msgtype) {


      switch (msgtype) {
        case 'error':
            $class = 'bar_error topbar'
            break;
        case 'success':
            $class = 'bar_success topbar'
            break;
        case 'working':
            $class = 'topbar'
            msg = 'Spinner ' + msg
            break;
        default:
            $class = 'topbar'
            msg = msg
            break;
      }

     if ($("#loader_bar").is(":visible")) {
         $("#loader_bar").removeClass()
         clearInterval(int);
         $("#loader_bar").html(msg).addClass($class);
    } else {
      $('<div />', { "class": $class, html: msg, "id" : "loader_bar" }).prependTo("body").slideDown('fast');    
    }

      myTimer = setInterval($("#loader_bar").slideUp('fast'), 10000);
}

现在,它出现了一瞬间然后呢?

基本上我想要一个栏在我调用时显示某个类,10秒后我想要它slideUp但是如果在超时之前从另一个函数再次调用它。我想重置计时器并更改消息/类并再保持10秒......

1 个答案:

答案 0 :(得分:1)

myTimer = setInterval($("#loader_bar").slideUp('fast'), 10000);

应该是

myTimer = setInterval(function() { $("#loader_bar").slideUp('fast'); }, 10000);

要运行的语句必须在函数中,否则会立即调用。