我希望你能幫助我...我想要做的是什麼,第四個孩子在四年前問的問題是jquery, how to run a function as soon as another function ends 。我知道這個問題早已解決。我在這裏找到了解決方案,經過長時間的研究,我發現如何處理這些問題,現在又遇到了一大堆沮喪,除了再次打開這個話題之外,我無能爲力。所以這裏是我想做的事情:完成另一個功能後執行一個功能
基本上我想定義內容的行爲,當點擊元素(參考框)時,要切換和/或切出內容。我有兩個功能:
1.功能「removeRefContent」
是爲檢查,是否有其他的參考文獻內容,比一個點擊打開,如果是,靠近
function: 'appendRefContent2EndOfLine'
剛添加單擊的參考框的內容並顯示它。
以下是必要的代碼片斷:
功能displayRefContent(clickedRefID){
// check, if element is opened already
if ($('div#' + clickedRefID + '_refAdditionalContent').length)) {
removeRefContent();
} else {
// check whether other element is opened and close
removeRefContent().then(appendRefContent2EndOfLine (clickedRefID));
}
}
//這兩個功能都落後
功能appendRefContent2EndOfLine(requestedRefID){
// get refContent from reference storage container
var refContent = '<div id="' + requestedRefID + '_refAdditionalContent" class="refAdditionalContent">';
refContent = refContent + $('div#' + requestedRefID + '_additionalContentStorageContainer').html();
refContent = refContent + '</div>';
// find last refPreviewImage in elements row and store in variable lastElementInRowID
var lastElementInRowID = 0; //... some more code to find lastElementInRowID ...
// add refContent after last element in row and toggle in
$('div#' + lastElementInRowID + '_ref').after(refContent);
$('div#' + requestedRefID + '_refAdditionalContent').slideToggle(500);
}
VAR removeRefContent =函數(){
var removeRefContentDeferred = $.Deferred();
$('div.refAdditionalContent').slideToggle(500 , function() {
$('div.refAdditionalContent').remove(function() {
removeRefContentDeferred.resolve();
});
});
return removeRefContentDeferred.promise();
}
兩個函數做什麼,他們都是爲了。這個問題occuers,當行
removeRefContent()。然後(appendRefContent2EndOfLine(clickedRefID));
被要求。我想首先刪除所有其他引用的內容(通過切換),並且只有當完成並且$('div.refAdditionalContent').remove完成時,纔會執行appendRefContent2EndOfLine的另一個函數。
我讀了很多關於異步和排隊和序列的內容,但根本不明白爲什麼我的解決方案不起作用。結果是,兩個函數在同一時間執行導致衝突。
到目前爲止,我認爲在許多其他解決方案中,我選擇了最優雅的一個。但我很樂意瞭解你的想法...
謝謝你們!
乾杯弗蘭克
我知道這是一個問題就解決了一百倍......我真的我想我明白。但是現在,在無數小時的故障排除之後,再也看不到解決方案,但是......發現了幾種解決方法,但不想申請。 –