javascript - 让 JavaScript 命令在函数完成之前运行?

标签 javascript

我试图在函数启动时隐藏按钮并显示一些文本,然后在函数完成时隐藏文本并重新显示按钮。

我很难做到这一点,因为 JavaScript 的工作方式是,在整个函数完成之前,它不会向屏幕输出任何内容;因此,我尝试做的是行不通的。

我尝试在“onclick”命令上使用两个不同的函数,但这产生了相同的结果。

任何对 JavaScript 有更多了解的人都可以告诉我如何实现我在这里尝试做的事情吗?

编辑:尝试了以下建议的代码:

function addCatsSIC2() {

    var addBtnWrapper = document.getElementById('addBtnWrapper');
    var addWait = document.getElementById('addWait');    

    addBtnWrapper.style.display = 'none';
    addWait.style.display = 'block';    

    setTimeout(function(){
        addCatsSIC();
    }, 10);

    addWait.style.display = 'none';
    addBtnWrapper.style.display = 'block';    

}

没用。唯一不同的是,我点击的按钮在功能完成之前不会“保持按下状态”。

最佳答案

试试这个

// disable the button
setTimeout(function(){
   // do your actions
   // re-enable the button
}, 10);

这应该给 Action 一个完成的机会,DOM Action 将生效,然后超时函数将执行。 JS 没有线程,但这可能会达到类似的效果。

关于javascript - 让 JavaScript 命令在函数完成之前运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5525899/

相关文章:

javascript - 如何在 FileSystem API 中覆盖文件

javascript - 使用 D3 在鼠标位置单击时绘制圆圈

javascript - react : rendering components in a loop

javascript - 如何在可视化上添加点 : Area Chart

javascript - href 链接不适用于 Safari 中的 onclick 事件

Javascript 默认关键字

javascript - 根据变量的编号输出图片

javascript - 如何在 JavaScript 中使用数组/对象/JSON 轻松访问表格数据?

javascript - 如何让两个 Canvas 动画发生碰撞?

javascript - 单击提交时的 HTML http重置/?