Sto usando jQuery per nascondere e mostrare elementi quando un gruppo di pulsanti di opzione viene modificato / cliccato. Funziona bene in browser come Firefox, ma in IE 6 e 7, l'azione si verifica solo quando l'utente fa clic da qualche altra parte nella pagina.
Per elaborare, quando carichi la pagina, tutto sembra a posto. In Firefox, se fai clic su un pulsante di opzione, una riga della tabella viene nascosta e l'altra viene visualizzata immediatamente. Tuttavia, in IE 6 e 7, fai clic sul pulsante di opzione e non accadrà nulla finché non fai clic in qualche punto della pagina. Solo allora IE ridisegna la pagina, nascondendo e mostrando gli elementi rilevanti.
Ecco il jQuery che sto usando:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
Ecco la parte dell'XHTML che colpisce. L'intera pagina viene convalidata come 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 qualcuno ha qualche idea sul perché questo accada e su come risolverlo, sarebbe molto apprezzato!