私は類似したサイトを持っています。この関数は、引き出したコンテンツを交換し、以下のようになるにスライドさ:
var loadAnAjaxArticle = function (url) {
var removeParentArticle = function() {
// I don't like doing this, but so far haven't found a
// particularly elegant way to replace the article
// when calling load(), only append it.
$('article').first().html($('article').last().html());
};
var showArticle = function (response, status, xhr) {
if (status == "error") {
$('article').first().html('<h2>There was an error processing your request.</h2>');
$('article').first().slideDown('slow');
} else {
removeParentArticle();
$('article').first().slideDown('slow');
}
};
var loadArticle = function() {
$('article').first().load(url + ' article', showArticle);
};
$('article').first().slideUp('slow', loadArticle);
}
基本的に、別の関数へのコールバックを提供し、コンテンツを非表示にする.slideUp
を呼び出します。この関数は.load
を呼び出してコンテンツを更新し、別の関数にコールバックを提供します。 その関数はDOMを少し見て、それを正しく見せるようにします(開発の初期段階ですが、まだエレガントではありません)。コンテンツを再度表示するには.slideDown
を呼び出します。
これは、私が使用している各機能がコールバックを受け入れるため、この場合は簡単です。使用している機能が同じ機能を持っている場合は、この方法で連鎖できるはずです。
が重複する可能性を: //stackoverflow.com/questions/10469292/wait-for-two-events-with-jquery-and-execute-a-callback-when-both-are-done) –
再現するコードの最小限の表現を表示できますか問題? – David