Estoy usando jQuery para ocultar y mostrar elementos cuando se altera / hace clic en un grupo de botones de radio. Funciona bien en navegadores como Firefox, pero en IE 6 y 7, la acción solo ocurre cuando el usuario hace clic en otro lugar de la página.
Para elaborar, cuando carga la página, todo se ve bien. En Firefox, si hace clic en un botón de opción, se oculta una fila de la tabla y la otra se muestra inmediatamente. Sin embargo, en IE 6 y 7, hace clic en el botón de opción y no pasará nada hasta que haga clic en algún lugar de la página. Solo entonces IE vuelve a dibujar la página, ocultando y mostrando los elementos relevantes.
Aquí está el jQuery que estoy usando:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
Aquí está la parte del XHTML que afecta. Toda la página se 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>
Si alguien tiene alguna idea de por qué sucede esto y cómo solucionarlo, ¡sería muy apreciado!