在这里查看我的代码
$('#UpdatesButton').click(function() {
$('.content').fadeOut(200, function() {
$(".content").empty(function() {
$('.content').load('Pages/Updates.php', function() {
$('.content').fadeIn(200);
});
});
});
});
因为.empty()不接受任何参数,我的代码在.empty函数为(https://api.jquery.com/empty/)的行上停止,我希望以某种方式继续执行.load和.fadeIn函数紧接着.empty完成它自己的执行,但似乎不可能,有没有替代方法来清空.content(这是一个DIV容器)?
答案 0 :(得分:2)
你不需要回调空,简单链接会像
一样$('#UpdatesButton').click(function() {
var elem = $('.content');
elem.fadeOut(200, function() {
elem.empty().load('Pages/Updates.php', function() {
elem.fadeIn(200);
});
});
});
但根据我的理解,您根本不需要empty()
,.load()
会更新内容
$('#UpdatesButton').click(function() {
var elem = $('.content');
elem.fadeOut(200, function() {
elem.load('Pages/Updates.php', function() {
elem.fadeIn(200);
});
});
});
答案 1 :(得分:0)
这是微优化,但在淡出之前开始加载数据可以减少整体加载时间。此代码基本相同,但与fadeOut
并行启动数据请求,并处理竞争条件。
fadeOut
回调将看到更新的data
变量在动画之后,触发内容更新$('#UpdatesButton').click(function() {
var $content = $('.content'),
data;
$.ajax({
url: 'Pages/Updates.php',
dataType: 'text',
success: function(result){
data = result;
if (!$content.is(':animated'))
$content.html(data).fadeIn(200);
}
});
$content.fadeOut(200, function(){
if (typeof data !== 'undefined')
$content.html(data).fadeIn(200);
});
});