나는 비슷한 것을하는 사이트가 있습니다. 이 기능은, 밖으로 밀어 컨텐츠를 교체하고 다음과 같습니다에서 슬라이드 :
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