2010-11-16 57 views
0

我有一個HTML表格,其中第一列的單元格每個都包含一個帶有「myClass」類的複選框。我也在該列的標題單元格中添加了一個複選框,並且我希望它能夠工作,以便檢查或取消選中標題單元格也會設置或取消設置所有行復選框。我有這樣的代碼在頭複選框的點擊處理程序:jQuery沒有在Opera中一致地找到禁用的元素

if (jQuery(event.target).attr('checked') === true) { 
    alert(jQuery('td .myClass:enabled').length); 
    jQuery('td .myClass:enabled').attr('checked', 'checked'); 
} else { 
    alert(jQuery('td .myClass:enabled').length); 
    jQuery('td .myClass:enabled').removeAttr('checked'); 
} 

三排已經啓用複選框,五級傷殘的。

該代碼在IE8,FF3.6和Chrome 7.0中正常工作。然而,在Opera 10.63中,我第一次檢查標題單元格時,所有八行都被檢查。隨後代碼按預期工作。

警報聲明證實了這一點,每次除第一個外都顯示'3'。

這是一個Opera bug嗎?如果是這樣,是否有解決方法?

+0

我們需要的示例頁面http://www.jsbin.com – galambalazs 2010-11-16 16:43:04

回答

2

奇怪synchronisity - 我剛纔分析的bug報告,我認爲是同樣的問題在幾個小時前:)

是的,這可能是其中歌劇逾期不申請的僞類啓用正確的錯誤在DOM中創建並隨後插入到文檔中的元素上。

使用類名替代:enabled可能是一個可接受的解決方法。或者在onload的所有複選框上反轉.checked屬性兩次,也許?這聽起來像是來回切換殘疾人或檢查狀態會讓Opera處理得很好。

+0

謝謝。我接受了你的建議,並通過檢查,然後取消選中所有複選框,在用戶首次單擊標題框時「固定」它。之後,Opera在所有點擊複選框上都沒有問題。 – 2010-11-17 15:43:23

+1

優秀。我們會準備一個核心修復程序 - 在Opera 11之後的某個時間,可能 - 但解決方法不應該有任何不良副作用。 – hallvors 2010-11-18 03:20:47