JQuery each()函数期间的操作指示器

JQuery each()函数期间的操作指示器,jquery,javascript,Jquery,Javascript,如何在JQuery each()执行期间执行简单的操作指示器,这是否可能? 我的JQuery代码有一些问题,我不理解它的行为:/ 我不熟悉JQuery js代码如下所示: $(function () { $('#offer_discount').keyup(function () { //here i try to show my hidden div with action indicator $('#mask').show();

如何在JQuery each()执行期间执行简单的操作指示器,这是否可能? 我的JQuery代码有一些问题,我不理解它的行为:/ 我不熟悉JQuery

js代码如下所示:

$(function () {
     $('#offer_discount').keyup(function () {

           //here i try to show my hidden div with action indicator
           $('#mask').show();

           $('#search-result').find('tr').each(function (index) {
                // do some calc
           });

           // here i try to hide my div with action indicator
           $('#mask').hide();
     });
});

它工作不正常,在计算结束时显示隐藏的div。有人可以帮忙吗?

当Javascript代码块运行时,没有可见的UI更新。在显示更改之前,必须将控件返回到浏览器。您可以使用时间为零的
setTimeout
调用来执行此操作,以便浏览器绘制更新,然后启动其余代码:

$(function () {
  $('#offer_discount').keyup(function () {

    //here i try to show my hidden div with action indicator
    $('#mask').show();

    window.setTimeout(function() {

       $('#search-result').find('tr').each(function (index) {
            // do some calc
       });

       // here i try to hide my div with action indicator
       $('#mask').hide();

    }, 0);

  });
});