Я максимально расширил код, чтобы воспроизвести ошибку, и поместил ее в jsfiddle:
http://jsfiddle.net/MwS8K/1/
Если дважды щелкнуть второй флажок, IE9 перестает работать. Также происходит сбой мобильного IE9 на телефоне Windows.
Об этом было сообщено в Microsoft и подтверждено как ошибка (но не угроза безопасности). Итак, сейчас ищем другое решение для этого. В основном ищет, чтобы скрыть / показать строки таблицы, когда отмечен флажок с помощью jQuery.
<input checked="checked" class="Category1" id="Category1" type="checkbox" value="true" />
<label for="Category1">
Category 1</label>
<br />
<input checked="checked" class="Category2" id="Category2" type="checkbox" value="true" />
<label for="Category2">
Category 2</label>
<br />
<div class="product-table">
<table border="0" id="ProductTable">
<tr>
<th>
Product Name
</th>
<th>
Action
</th>
</tr>
<tr class="Category1">
<td>
Product1
</td>
<td class="call-to-action">
View
</td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr class="Category2">
<td>
Product 2
</td>
<td class="call-to-action">
View
</td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
</table>
.product-table table td.call-to-action {
border-top: 1px solid #DDD;
}
table { border-collapse: collapse; }
$(document).ready(function () {
$("input:checkbox").live("click", function () {
if (this.checked) {
var category = "#ProductTable tr." + $(this).attr("class");
$(category).show('fast');
} else {
var category = "#ProductTable tr." + $(this).attr("class");
$(category).hide('fast');
}
});
});