Estoy usando jQuery para ocultar y mostrar elementos cuando se altera/se hace clic en un grupo de botones de opción. Funciona bien en navegadores como Firefox, pero en IE 6 y 7, la acción solo ocurre cuando el usuario hace clic en algún otro lugar de la página.Cómo obtener jQuery para reconocer .change() en IE
Para elaborar, cuando carga la página, todo se ve bien. En Firefox, si hace clic en un botón de opción, una fila de la tabla se oculta y la otra se muestra inmediatamente. Sin embargo, en IE 6 y 7, haga 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, ocultándose 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í es la parte de la XHTML que afecta. Toda la página 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 por qué ocurre esto y cómo solucionarlo, que sería muy apreciado!
Gracias, funcionó a la perfección. –
El evento Click solo funciona si cambia el valor con el mouse; si usa el teclado, el clic no se activa, pero el cambio sí. – samjudson
@samjudson, en mi prueba esto no es correcto y el clic de jquery se dispara cuando selecciono el siguiente botón de opción con las teclas de flecha. (vista, ie7) – svandragt