As células da tabela IE7 tornadas invisíveis por CSS não podem ser visíveis por alterações posteriores de classe (??)

Aqui estão dois arquivos de teste:

http://gutfullofbeer.net/good-table.html

http://gutfullofbeer.net/bad-table.html

A marcação nessas duas páginas é quase a mesma. Há uma mesa com duas colunas. o<th> e<td> todos os elementos de uma coluna (a segunda) recebem a classe "lixo".

Na página "boa", ao carregá-la, você verá uma caixa de seleção desmarcada na parte superior. Se você marcar a caixa de seleção, a segunda coluna deve desaparecer. Se você desmarcar, a segunda coluna volta. Na página "inválida", a caixa de seleção começa marcada. Desmarcá-lo não tem efeito no IE7, embora funcione em outros navegadores que não são possuídos pelo mal fundamental.

A caixa de seleção está conectada a uma pequena rotina Javascript que apenas adiciona ou remove a classe "compact" do<table> etiqueta, rótulo, palavra-chave. Há uma folha de estilo que inclui isso:

table.compact th.junk, table.compact td.junk {
  display: none;
}

Assim o quedevemos acontecer é o que acontece na página "boa". No entanto, parece que no IE7 (talvez 6 também) se os elementos da tabelacomeçar tal que quandoinicialmente processados para serem invisíveis, eles nunca serão vistos, independentemente das alterações subseqüentes no DOM que trariam novas regras de estilo em vigor e as deixariam visíveis. (Este parece ser um problema com<table> peças em particular; Estou usando o mesmo mecanismo em outro lugar com outros elementos e todos eles funcionam bem.)

Então, a pergunta é: alguém sabe de algum truque - por mais revoltante - que possa ser usado para contornar esse comportamento idiota? Obviamente, eu poderia tentar organizar o IE7 para iniciar suas visualizações com o conjunto de controle de alternância relevante para que as células da tabela fiquem visíveis, mas no meu caso, isso acontece em torno de uma tabela que é produzida como uma resposta AJAX e, portanto, seria um grande problema. bagunça que eu prefiro evitar. (A tabela também é realmente uma tabela; é uma exibição de informações tabulares, não um hack de layout.)

Pesquisei no Google e não encontrei nada, o que não deveria surpreender se você considerar quantos hits obtém das pesquisas "bug de layout do IE7".

questionAnswers(2)

yourAnswerToTheQuestion