希望有人可以为我解释这个问题....我正在使用setInterval来交替在网页上显示标题。它淡出前一个,然后在回调函数中淡入新的一个。它过去工作正常,但我将回调函数与fadeOut分开,因为我想最初没有延迟地运行它,现在我得到了初始标题,但是当需要更改时,它们会淡入分割第二,又消失了。
function processSidebar(data) {
var headlines = $.parseJSON(data);
var sIndex = 0;
function newSidebar(surl, sIndex) {
$(".sidebar").html(headlines[sIndex].date + '<br><a href="' + surl + '">' + headlines[sIndex].line + '</a>');
$(".sidebar").fadeIn(400);
}
newSidebar("getme.php?blog=1&headline=1", sIndex);
setInterval(function() {
++sIndex;
if (sIndex == headlines.length) {sIndex = 0}
var surl="getme.php?blog=1&headline=" + headlines[sIndex].index;
$(".sidebar").fadeOut(400,newSidebar(surl,sIndex));
}, 10000); // end setInterval
}; // end processSidebar
答案 0 :(得分:1)
jQuery&#39; fadeOut
想要一个函数作为complete
参数。
您正在提供newSidebar(surl,sIndex)
,它会立即进行评估并且不会返回任何内容(但会返回整个fadeIn
内容。)
您想使用匿名函数:
$(&#34; .sidebar&#34;)。fadeOut(400,function(){newSidebar(surl,sIndex)});