我有一個函數加載一個部分。如何嵌套jQuery .when調用回調?
function loadSection(sectionId, onLoaded) {
$.when(
loadTemplate(sectionId),
// etc
)
.then(function() {
// removed for brevity
}
}
在loadTemplate
功能我淡出當前模板和淡出後,我加載新的模板。
function loadTemplate(sectionId) {
// Fade out current template.
return $content.fadeOut(function() {
// After fade out, load new template via ajax.
$.ajax({
url: settings.apiUrl + 'GetSectionTemplate',
data: { sectionId: sectionId },
type: 'post',
success: function (template) {
// Add new content and fade in new template.
$content
.html(template)
.fadeIn();
}
});
});
}
的問題是$.when
只有等待淡出功能,在移動之前完成。我需要它等待fadeOut和ajax調用完成,但我需要ajax調用才能在fadeOut完成後執行。
如果你'返回$阿賈克斯({});'? – Ian
@ianpgall返回從fadeOut回調函數返回。我試過了。它不能解決任何問題。 – Chev
您的loadTemplate函數需要參與延遲/承諾的世界。 – jfriend00