我有一个表,其中一些行以隐藏(display:none
)开头,我正在使用jQuery来显示它们。我从Firebug收集到jQuery检测到它们是表行并将它们设置为display:table-row
而不是阻塞。
然而,IE6(我认为也是7)不支持table-row
,那么jQuery是否会为这些浏览器做些不同的事情?
另一个问题似乎是使用show()
以外的任何功能导致Linux和Firefox中的100%CPU,并且在我收到有关慢速脚本的警告之前它们会变得无法响应。在Opera中,行一个接一个地出现得很慢。有没有办法让行像普通<div>
那样顺畅地显示?
答案 0 :(得分:2)
不幸的是,这是不可能的。原因是表格行没有布局。它严格地说是结构元素而不是显示元素。 table-data既不是显示元素,也是结构元素。但是你可以尝试这个。这将隐藏表数据的内容,有效地折叠表行。
// show
$("table tr.show").find("td *").show();
// hide
$("table tr.hide").find("td *").hide();
答案 1 :(得分:0)
这个解决方案对我有用(假设TR设置了“display:none”):
$( “#table_row”)的CSS( “显示”, “表列”);
如果($( “#table_row”)。CSS( “显示器”)== “无”)
$( “#table_row”)的CSS( “显示”, “块”);
IE无法识别表行属性,因此它不会更改显示值,而是保留以前具有的任何值(在本例中为“none”)。因此,您所要做的就是测试显示是否更改为表格行(FF&amp; Chrome),还是保留其先前的值(IE)。
希望这会有所帮助。