ラジオボタングループが変更またはクリックされたときに要素を非表示および表示するためにjQueryを使用しています。Firefoxなどのブラウザでは問題なく機能しますが、IE 6と7では、ユーザーがページの他の場所をクリックしたときにのみアクションが発生します。
詳しく説明すると、ページをロードすると、すべてが正常に見えます。Firefoxでは、ラジオボタンをクリックすると、1つのテーブル行が非表示になり、他の行がすぐに表示されます。ただし、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>
誰かがこれがなぜ起こっているのか、そしてそれを修正する方法について何か考えがあれば、彼らは非常に高く評価されます!