在哪里放置timeout()淡出?

时间:2010-03-07 09:46:11

标签: javascript jquery timeout fadeout

function checkSession(){         $ .ajax({url:“session.php”,success:function(data){              if(data == 1){                 var postFilen ='msg.php';                 $ .post(postFilen,function(data){                 $( “味精 ”)HTML(数据).find(“ 消息2 ”)。淡入(“ 慢”)              }其他{                  $( '味精')隐藏()。              }         }});     // setInterval('checkSession()',1000);

现在我想在5秒钟后显示fadeout .msg。 我该怎么做呢.. 我试过了:

function checkSession(){
    $.ajax({url: "session.php", success: function(data){
         if( data == 1){
            var postFilen = 'msg.php';
            $.post(postFilen, function(data){
            $(".msg").html(data).find(".message2").fadeIn("slow")
                    setTimeout(function() {
    $('.msg').fadeOut('slow');
        }, 5000);
            });  
         }else{ 
             $('.msg').hide();
         }
    }});
// setInterval('checkSession()',1000);
}

但是第一次之后这条消息就不会出现..

2 个答案:

答案 0 :(得分:2)

尝试使用delay方法:http://api.jquery.com/delay/

 $('#foo').slideUp(300).delay(800).fadeIn(400);

我的情况,如:

 $(".msg")
   .html(data)
   .find(".message2")
   .fadeIn("slow")
   .parent('.msg')
   .delay(5000)
   .fadeOut('slow')

[编辑:修复示例]

[edit2:新例子]


这个似乎在这里运作良好:

<div class="msg"></div>
<p>
    Some text <br /> <a id="bloup" href="">show message</a>
</p>

然后

   $(function() {
      $("#bloup").click(function(e) {
          e.preventDefault();

          var data = "<span class='message2'>Hello world</span>";

          $(".msg")
              .show()
              .html(data)
              .find('.message2')
              .fadeIn('slow')
              .parent('.msg')
              .delay(2000).fadeOut('slow');
      }) 
   });

答案 1 :(得分:0)

首先尝试为我们编写更清晰的代码,以便更好地理解您的问题,$.post的回调函数在第一个代码段的顶部错过了});这些字符,而第二个代码中的缩进是错误的

然后查看这些链接以了解setTimeout的使用。

https://developer.mozilla.org/en/DOM/window.setTimeout

http://www.w3schools.com/jsref/met_win_settimeout.asp

还有您的问题:

如果您将var t =放在setTimeout(function() {之前,它会按预期工作,

希望这些有所帮助,思南。