Я використовую jQuery для приховування та показу елементів, коли група перемикачів змінюється / клацається. Це добре працює в браузерах, таких як Firefox, але в IE 6 і 7 дія відбувається лише тоді, коли користувач потім натисне десь ще на сторінці.
Щоб уточнити, коли ви завантажуєте сторінку, все виглядає добре. Якщо у Firefox натиснути перемикач, один рядок таблиці прихований, а інший відображається негайно. Однак в IE 6 і 7 ви натискаєте на перемикач і нічого не відбудеться, поки ви не натиснете десь на сторінці. Тільки тоді IE перемальовує сторінку, приховуючи та показуючи відповідні елементи.
Ось jQuery, який я використовую:
$(document).ready(function () {
$(".hiddenOnLoad").hide();
$("#viewByOrg").change(function () {
$(".visibleOnLoad").show();
$(".hiddenOnLoad").hide();
});
$("#viewByProduct").change(function () {
$(".visibleOnLoad").hide();
$(".hiddenOnLoad").show();
});
});
Ось частина XHTML, на яку вона впливає. Вся сторінка підтверджується як 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>
Якщо у когось є ідеї, чому це відбувається і як це виправити, вони були б дуже вдячні!