我想在完成$(".foo").fadeIn("slow");
之后的所有内容后执行.done()
。
现在每当调用fadeIn时,我仍然可以看到文本是如何被实时更改的,因为jQuery不会等到它完成之后。
我将如何做到这一点?
$(".notice").fadeOut("slow", function() {
$.ajax({
url: "http://graph.facebook.com/name",
cache: false,
dataType: "JSON"
})
.done(function(data) {
$(".foo .bar").text(data.name);
});
$(".foo").fadeIn("slow"); //
});
答案 0 :(得分:2)
将代码放在jQuery.done
方法
$(".notice").fadeOut("slow", function() {
$.ajax({
url: "http://graph.facebook.com/name",
cache: false,
dataType: "JSON"
})
.done(function(data) {
$(".foo .bar").text(data.name);
$(".foo").fadeIn("slow"); //
});
});
答案 1 :(得分:0)
将其移动到你的ajax-done函数中:
$(".notice").fadeOut("slow", function() {
$.ajax({
url: "http://graph.facebook.com/name",
cache: false,
dataType: "JSON"
})
.done(function(data) {
$(".foo .bar").text(data.name);
$(".foo").fadeIn("slow"); //move it here and it will be called if your ajax request is ready
callMethod(); //alternative you can call a mehtod
});
});
function callMethod() {
$(".foo").fadeIn("slow");
}
答案 2 :(得分:0)
您可以使用chain of done:
$.ajax({
url: "http://graph.facebook.com/name",
cache: false,
dataType: "JSON"
}).done(function(data) {
$(".foo .bar").text(data.name);
}).done(function() {
$(".foo").fadeIn("slow");
});