讓jQuery識別IE中的.change()當我更改/點擊單選按鈕組時,我正在使用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>如果有人有任何想法為什么會這樣,以及如何解決它,他們將非常感謝!
3 回答

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
你有沒有嘗試過IE的onpropertychange事件?我不知道它是否有所作為,但它可能值得一試。當通過JS代碼更新值時,IE不會觸發更改事件,但是在此實例中,onpropertychange可能會起作用。
$("#viewByOrg").bind($.browser.msie? 'propertychange': 'change', function(e) { e.preventDefault(); // Your code here });
- 3 回答
- 0 關注
- 722 瀏覽
添加回答
舉報
0/150
提交
取消