Estou usando o jQuery para ocultar e mostrar elementos quando um grupo de botões de opção é alterado / clicado. Funciona bem em navegadores como o Firefox, mas no IE 6 e 7, a ação ocorre apenas quando o usuário clica em outro lugar da página.
Para elaborar, quando você carrega a página, tudo parece bem. No Firefox, se você clicar em um botão de opção, uma linha da tabela é ocultada e a outra é mostrada imediatamente. No entanto, no IE 6 e 7, você clica no botão de opção e nada acontecerá até clicar em algum lugar da página. Somente então o IE redesenha a página, ocultando e mostrando os elementos relevantes.
Aqui está o jQuery que estou usando:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
Aqui está a parte do XHTML que ele afeta. A página inteira valida como XHTML 1.0 Strict.
<tr>
<td>View by:</td>
<td>
<p>
<input type="radio" name="viewBy" id="viewByOrg" value="organisation"
checked="checked" />Organisation</p>
<p>
<input type="radio" name="viewBy" id="viewByProduct" value="product" />Product</p>
</td>
</tr>
<tr class="visibleOnLoad">
<td>Organisation:</td>
<td>
<select name="organisation" id="organisation" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</td>
</tr>
<tr class="hiddenOnLoad">
<td>Product:</td>
<td>
<select name="product" id="product" multiple="multiple" size="10">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</td>
</tr>
Se alguém tiver alguma idéia de por que isso está acontecendo e como corrigi-lo, seria muito apreciado!