Я пишу веб-сайт в javascript vanilla (не могу использовать JQuery), где я написал небольшую функцию fadeOut с javascript и CSS. Я бы хотел, чтобы 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