这是我的代码。我想要做的是使用jQuery在我的页面更新新闻。代码按预期工作 - 每5秒钟从边栏移除新闻并在其位置发布2个更新。我不能做的是在发布更新之前删除所有新闻。目前,它会附加更新并同时开始淡出旧消息。 任何人都有关于如何为此设置正确超时的想法?
function updateNews()
{
$('.newsUpdate').load('news.html .news', function ()
{
$('.MainNews').fadeOut(); /* timeout should happen here! */
var start = Math.floor(Math.random() * 4);
var stop = start + 2;
$(this).children('.news').slice(start, stop).css('display', 'none').attr('class', 'MainNews').insertAfter('.nav').fadeIn().children('span').remove();
$(this).children('.news').remove();
});
setTimeout(updateNews, 5000);
}
updateNews();
HTML非常简单:
<div class='sidebar'>
<ul class='nav'>
<li></li>
</ul>
</div>
<article>main content of the site</article>
<div class='newsUpdate'>this created specially to upload news from news.html and manipulate them</div>
答案 0 :(得分:1)
使用fadeOut回调
function updateNews()
{
$('.newsUpdate').load('news.html .news', function ()
{
$('.MainNews').fadeOut(1000,function(){
//This code will be executed after the fadeOut
var start = Math.floor(Math.random() * 4);
var stop = start + 2;
$(this).children('.news').slice(start, stop).css('display', 'none').attr('class', 'MainNews').insertAfter('.nav').fadeIn().children('span').remove();
$(this).children('.news').remove();
});
});
setTimeout(updateNews, 5000);
}
updateNews();