在筛选表之前显示/隐藏图像是't工作
Show/Hide image before filtering a table isn't working
我有一个网页,里面有一些非常大的表,我正在使用我编写的一些jquery例程进行过滤。无论如何,当这些表变得非常大,并且过滤功能可能需要一些时间才能完成。所以我想我应该取消隐藏一个动画gif,这样用户就有了一些反馈。然而,当我调用时,gif从未出现
$('#loadingimg').show();
除非我在它前面放了一个警告语句。我为丑陋的代码道歉,我不是一个经验丰富的jquery/javascript程序员。
function filter()
{
var eles = ["mtmprogram","rate","stage"];
var tag;
var classes='';
$('#loadingimg').show();
//alert('hi');
$('.report').hide();
for (var i in eles)
{
tag = '#' + eles[i] + ' option:selected';
if ($(tag).val())
{
//$('.'+ $(tag).val()).show();
classes = classes + '.' + $(tag).val();
}
}
if (classes == '')
$('tr.report').show();
else
$(classes).show();
filterSubtables('Loan Number');
$('#loadingimg').hide();
}
非常感谢!
也许您没有给#loadingimg
元素足够的时间来显示。您可以通过在超时时间内运行其余代码来测试这一点:
function filter()
{
var eles = ["mtmprogram","rate","stage"],
classes = '';
$('#loadingimg').show();
//alert('hi');
setTimeout(function () {
$('.report').hide();
for (var i = 0, len = eles.length; i < len; i++)
{
var $tag = $('#' + eles[i] + ' option:selected');
if ($tag.val())
{
//$('.'+ $tag.val()).show();
classes = classes + '.' + $tag.val();
}
}
if (classes == '')
$('.report').show();
else
$(classes).show();
filterSubtables('Loan Number');
$('#loadingimg').hide();
}, 500);
}
注意,我更改了tag
变量的使用方式(这会减少CPU开销,从而减少jQuery的选择,并尽可能使用本地变量)。我还将您的循环更改为比for ( a in b )
更快的更好格式:http://jsperf.com/jquery-each-vs-for-loops/2
相关文章:
- 引导程序转盘不工作:堆叠图像(使用rails)
- 单击水平滚动库中的图像以居中显示无法工作的功能
- 图像翻转脚本未按预期工作
- 在页面中使用了两次多个图像上传,但第一个正在工作,另一个不起作用
- JQuery图像预览无法工作
- 弹出图像无法使用jquery在html中工作
- JQuery图像滑块和CSS转换只能工作一次
- 卷轴上的视差图像和粘滞标题无法正常工作
- 图像占位符没有't的工作原理与Angular 1中的相同
- 图像看起来像一个只在firefox中工作的按钮
- flexislider无法在现场工作,图像没有旋转,但导航点正在改变
- 更改图像src-dons't工作jquery/js
- JQuery图像大小计算没有'不能在Chrome/Safari中工作
- Fancybox图像点击可以独立工作,但不能与我的其他代码一起工作
- 谷歌图书预览没有在安全的https上显示图书图像链接,但在http上工作.在Google Chrome和Touch浏览器
- Elastislide-如何使其在不同的图像宽度下工作
- Jquery只有在加载图像后才能使fadeIn工作
- 在执行 h:命令链接操作时显示工作图像
- 为什么这个jQuery不能工作?图像淡出和淡出
- Flexslider-如何使用单个方向Nav使两个滑块一起工作(图像和段落文本)