Мне не хватает чего-то действительно очевидного, но я не могу заставить один из моих методов ждать, пока не будет выполнено переключение jQuery.
У меня есть три следующих метода:
const toggleContainer = function() {
addAnswerContainer.toggle("slow");
};
const toggleButtons = function() {
submitAnswerBtn.toggle("slow");
cancelAnswerBtn.toggle("slow");
};
const changeText = function() {
if( addAnswerContainer.is(":hidden") ) {
addOwnAnswerBtn.text("Add your own answer" );
}
else {
addOwnAnswerBtn.text("Hide adding answer");
}
};
Все, что я хочу сделать, - это заставить что-то подобное работать:
const toggleUI = function() {
toggleContainer();
toggleButtons();
changeText(); // executes too fast
};
Проблема в том, что changeText()
выполняется слишком быстро, и каждый раз, когда он проверяет, addAnswerContainer.is(":hidden")
возвращает false
, если я не setTimeout
это в течение нескольких секунд, а это не то, что я хочу.Я пробовал с обратными вызовами, также с Обещаниями, но я просто не могу заставить это работать.Как я могу заставить changeText()
ждать, пока addAnswerContainer.toggle()
не выполнит свою работу?