Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 旧IE';这不是动态更新CSS_Javascript_Html_Css - Fatal编程技术网

Javascript 旧IE';这不是动态更新CSS

Javascript 旧IE';这不是动态更新CSS,javascript,html,css,Javascript,Html,Css,我有一个带有一些css的表来隐藏/显示列。每个td都有“column”和“columnX”类,其中X是列号。css看起来像: .column { display: none; } table.show1 .column1 { display: block; } table.show2 .column2 { display: block; } 表格开始显示所有隐藏内容,用户将其打开。发生这种情况时,会根据所显示的列向表中添加一个类,如“show1”或“show2” 这在FF、chrome和IE8

我有一个带有一些css的表来隐藏/显示列。每个td都有“column”和“columnX”类,其中X是列号。css看起来像:

.column { display: none; }
table.show1 .column1 { display: block; }
table.show2 .column2 { display: block; }
表格开始显示所有隐藏内容,用户将其打开。发生这种情况时,会根据所显示的列向表中添加一个类,如“show1”或“show2”

这在FF、chrome和IE8中非常有效。但IE6/7存在一个问题,即“列”不会变成“显示:块”。但是,如果我进入开发者工具栏并切换css规则

table.showX .columnX {display: block; }
它很好用。就像这些老浏览器不知道通过javascript更新表一样。另外,如果我在表中添加一个像“show0”这样的类(不是javascript),它在IE6/7中也可以正常工作


任何已知的解决方法?

首先,表格单元格的正确显示值是而不是“块”;这是“桌子单元格”。现在,对于IE的旧版本来说,这是一个没有意义的观点,因为他们并不真正理解那种花哨的东西

现在,下一个问题是,旧IE(6和7,而不是8)在最初呈现表格单元格时具有这一有趣的特性:如果在第一次呈现表格时,
(以及顶部的
,如果您愿意)元素的列不可见,那么对DOM的后续更改将永远不会显示出来。那样做很愚蠢;事实上


为了解决这个问题,我所做的是在页面上添加一些JavaScript,这样在首次呈现HTML之后,一些代码可以返回,然后使相应的列不可见。只要它们一开始是可见的,它们就可以关闭,然后再打开,而不会发生意外。

您是如何解决问题的?另外,设置可见性:hidden似乎也不起作用,尽管有人建议将其作为一种修复方法,但你能使其起作用吗?不,这些建议对我都不起作用。我最后所做的就是我在这里描述的:应该是不可见的列从可见开始,然后我运行一些Javascript来关闭它们。这很可笑,但据我所知,这是唯一有效的方法。(如果你找到更好的方法,请告诉我!!)哦,还有,即使“可见性”的方法确实有效,它也不是你想要的。在我的情况下,我真的断绝了专栏,让它完全消失。使用“visibility:hidden”(可见性:隐藏)时,屏幕上仍然有空间。如果我操作得当,可见性对我来说是可以接受的(我通常一次只显示5行相邻的行)。对我来说,问题是我不能让它们开始可见,因为这是一张巨大的桌子,需要一段时间才能画出来。另一件恼人的事情是,它通过ajax以大字符串的形式出现。也许你有个建议。如果我发现了什么,我会告诉你的。@Joda Maki在我链接的另一个问题中,我发布了几个测试页面的URL。我认为这些页面仍然存在,它们应该仍然可以作为测试页面使用。请随意复制它们并用于您自己的测试!