Я использую 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>
Если у кого-нибудь есть идеи, почему это происходит и как это исправить, они будут очень благодарны!