Ich verwende jQuery, um Elemente auszublenden und anzuzeigen, wenn eine Optionsfeldgruppe geändert / angeklickt wird. Es funktioniert gut in Browsern wie Firefox, aber in IE 6 und 7 wird die Aktion nur ausgeführt, wenn der Benutzer dann auf eine andere Stelle auf der Seite klickt.
Wenn Sie die Seite laden, sieht alles gut aus. Wenn Sie in Firefox auf ein Optionsfeld klicken, wird eine Tabellenzeile ausgeblendet und die andere sofort angezeigt. In IE 6 und 7 klicken Sie jedoch auf das Optionsfeld, und nichts passiert, bis Sie irgendwo auf die Seite klicken. Erst dann zeichnet der IE die Seite neu und blendet die relevanten Elemente aus und ein.
Hier ist die jQuery, die ich verwende:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
Hier ist der Teil des XHTML, der davon betroffen ist. Die gesamte Seite wird als XHTML 1.0 Strict validiert.
<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>
Wenn jemand eine Idee hat, warum dies geschieht und wie es behoben werden kann, wäre er sehr dankbar!