如何在执行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显示在计算结束时。有人可以帮忙吗?
答案 0 :(得分:2)
在运行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);
});
});