希望有人能为我阐明这个问题......我正在使用 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
最佳答案
jQuery 的 fadeOut
需要一个函数作为complete
参数。
您提供的是 newSidebar(surl,sIndex)
,它会立即进行计算并且不返回任何内容(但会执行整个 fadeIn
操作)。
您想使用匿名函数:
$(".sidebar").fadeOut(400,function() { newSidebar(surl,sIndex) });
关于javascript - Jquery fadeIn 回调中的 fadeOut 不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24108181/