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);
}
但是第一次之后这条消息就不会出现..
答案 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() {
之前,它会按预期工作,
希望这些有所帮助,思南。