我正在尝试在 fadeOut 和 fadeIn 之间加载内容。
如果我尝试运行以下代码,则在 fadeOut 完成之前加载内容:
$("#contentArea").fadeOut(1000);
$("#contentArea").promise().done();
$("#contentArea").load(content_map[$(this).attr('id')]);
$("#contentArea").fadeIn(1000);
我试图在 fadeOut 中添加一个回调函数,但仍然会在该回调中提前调用加载。我尝试在 fadeOut 之后添加 setTimeout ,但仍然无效。
我添加了承诺功能(显然很关键),有或没有回调函数保存后续操作,但它不起作用。
我很高兴知道如何最好地达到这种效果,如果有人也可以给我一个关于为什么我的其他尝试失败的提示,那将是一个很好的奖励:)
答案 0 :(得分:3)
回调函数应该有效,所以我怀疑你做错了。它应该是:
$("#contentArea").fadeOut(1000, function() {
$(this).load(content_map[this.id], function() {
$(this).fadeIn(1000);
});
});