我正在寫一個香草javascript的網站(不能使用JQuery),我已經用javascript和CSS編寫了一個fadeOut函數。我希望fadeOut在下一個函數被調用之前完成。爲此,我試圖使用回調函數 - 該函數的唯一目的是確保第一個函數在第二個函數被調用之前完成。我讀過一些教程,但無法弄清我做錯了 - 我絕不會在第二個函數到達:在Javascript中調試回調函數:沒有達到第二個函數
function mformSubmit() {
doCallback(fadeOut, function() { setupM });
}
function fadeOut() {
for(var i=0; i<m_types.length; i++) {
if (document.getElementById(m_types[i]).className != 'selected') {
document.getElementById(m_types[i]).style.opacity = 0;
} else {
selection = m_types[i]; }
};
}
function doCallback(callback) {
if (typeof callback === "function") {
callback();
}
}
function setupM() {
alert("I arrived in the setup function");
}
和相關的CSS位:
label.unselected {
background-color: #fff;
float: left;
padding: 5px;
border: 2px solid #CCC;
border-radius: 8px;
box-shadow: rgba(0,0,0,0.04) 15px 15px;
margin: 10px 10px 20px 30px;
/* Opacity tricks */
-webkit-transition: opacity 800ms ease;
-moz-transition: opacity 800ms ease;
-o-transition: opacity 800ms ease;
transition: opacity 800ms ease;
}
謝謝提前!
'doCallback'只能識別一個參數。傳入的第二個函數被忽略。 –
你可能會回答這個問題:) –
似乎沒有任何需要回調,它都是同步的,你的回調不會等待CSS動畫完成? – adeneo