我目前正在使用jQuery中的hide / show函数来帮助从一个选择框中将表格过滤成组。
实际代码工作正常,但速度极慢,有时需要花一两分钟才能执行。
我切换代码而不是hide()和show()它使用css({'display':'none'});
和css({'display':'block'});
- 速度差异简直令人难以置信,现在只需几秒钟,但在Firefox中表格数据全部按每行压扁。
这不是世界末日,因为我们几乎完全使用Internet Explorer,但我仍然想知道是否有办法绕过它,因为相当多的人(包括我自己)都使用Firefox。
答案 0 :(得分:4)
在firefox中显示/隐藏表格行,你必须设置以下内容。
//To show
$("tr").css("display", "table-row");
//To hide
$("tr").css("display", "none");
答案 1 :(得分:1)
jQuery API指定可以为.show和.hide函数设置持续时间。我怀疑当你设置它时它可以解决你的问题。
答案 2 :(得分:1)
提到show()和hide()的持续时间的答案是好的。但是,如果行数太多,show()
和display: block
或display: table-row
之间的区别在于show()
为每行运行动画。这肯定会变慢,特别是在较大的桌子上。
如果您真的试图挤出性能,请尝试查看jqGrid或SlickGrid的源代码。后者具有疯狂快速的过滤功能,肯定会起作用。如果您太过牵扯,请使用display: block
或display: table-row
和display: none
。你甚至可以创建自己的jQuery插件,它可以显示showFast和hideFast,所以你不必重复那段代码。