2012-11-11 3 views
0
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); 
} 

지금은 몇 초가 지나면 나타 납니까?이 jQuery 메시지 막대 기능을 어떻게 수정합니까?

기본적으로 나는 바를 호출 할 때 특정 클래스와 함께 나타나기를 원한다. 그러나 10 초 후에는 slideUp으로 바꾼다.하지만 타임 아웃 전에 다른 함수에서 다시 호출된다면 바가된다. 나는 그렇지 않으면를

답변

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

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

함수에 있어야 실행하는 문이어야한다 ... 타이머를 재설정하고 메시지/클래스를 변경하고 다른 10 초를 유지하려면 즉시 부름을받을 것입니다.

+2

또한 setTimeout() 대신 setInterval()을 사용해야하는 이유가 없습니다. '.slideUp()'가 호출되면, 다시 호출 할 이유가 없습니다. – jfriend00

관련 문제