【发布时间】:2018-10-29 23:26:58
【问题描述】:
我遗漏了一些非常明显的东西,但我不能让我的一种方法等到 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 它几秒钟,这不是我想要的。我尝试了回调,也尝试了 Promises,但我就是无法让它工作。我怎样才能让changeText() 等待,直到addAnswerContainer.toggle() 完成它的工作?
【问题讨论】:
-
您在使用回调方法时遇到了哪些错误?
-
@AndrewL 使用回调方法我没有任何错误,但它又太快了。但那是因为我自己做了回调,我才意识到 jQuery 切换也接受了回调
标签: javascript jquery callback promise method-chaining