javascript - jQuery 函数仅在调试器模式下工作

标签 javascript jquery css

我尝试在过滤表中的行(有 5000 行)时显示和隐藏加载器/旋转器 GIF。

$('.dropdown-filter-menu-item.select-all').click(function () {
     document.getElementsByClassName('modal')[0].style.display='block';
    // filter function
    **code goes here**
   document.getElementsByClassName('modal')[0].style.display='none';
})

这里,“dropdown-filter-menu-item”是复选框过滤器的类名,modal是使用的“loader”的类名。 当我将调试器放置在显示或隐藏行中时,它工作正常。没有调试器,它无法工作。 我认为元素的样式只有在函数结束后才会改变。你能帮我解决这个问题吗?提前致谢。

最佳答案

I think the styles of element gets changed only after the function ends

猜得不错,这正是正在发生的事情,因为整个函数是同步的。

有一个很好的技巧可以使用,它可以让你的加载图像显示出来,然后解决耗时的过滤功能。超时后执行过滤:

$('.dropdown-filter-menu-item.select-all').click(function () {
    document.getElementsByClassName('modal')[0].style.display='block';
    setTimeout(filter); // defaults to 0ms
})

function filter() {
    **code goes here**
   document.getElementsByClassName('modal')[0].style.display='none';
}

setTimeout 允许您的函数在下一个生命周期中运行,从而允许首先显示加载图像。

关于javascript - jQuery 函数仅在调试器模式下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60639041/

相关文章:

javascript - 在 Heroku 上部署 NodeJS 应用程序时遇到错误

css - 如何将 joomla 模板中的页脚保持在底部?

css - webpack 没有为 SCSS 创建 CSS 文件

jquery - 如何使动画双向工作

css - 为表格行提供纯色、连续的背景色

javascript - 通过javascript编辑html输入表单的值

javascript - Jstestdriver 设置和拆卸

php - 编辑生成内容的特定部分

javascript - 数据表中的多个子行

javascript - 如何使 SELECT 字段的选定选项与另一个选择字段 Onchange 相同?