2009-12-29 66 views
0

我有一個包含單選按鈕(即3x3網格)的表格,我希望當我選擇其中一個包含單選按鈕來更改顏色時。在此之後example我這樣做JQuery和RadioButtons問題

<table class="table-name"> 
<tr> 
    <td> 
     <span>Some text</span> 
     <input type="radio" name="some-name" /> 
    </td> 
    <td> 
     <span>Some text</span> 
     <input type="radio" name="some-name" /> 
    </td></tr> 
</table> 

和JavaScript

$(':radio').change(function() {   
    $('.color-1').removeClass('color-1');  
    var $td = $(this).parent('td'); 
    if (this.checked) {    
     $td.addClass('color-1'); 
    } else {       
     $td.removeClass('color-1'); 
    } 
}); 

這個行之有效的Firefox。但在Internet Explorer上,它會爲之前選擇的顏色 所以如果我選擇1,1它保持白色,但是當我選擇1,2時,則1,1變爲藍色等等。

任何想法?

+0

隨着.click版本,我不認爲你需要「this.checked」檢查作爲觸發事件的元素總是檢查,對吧? – Rich 2009-12-29 10:31:49

回答

3

IE(所有版本)的和radio buttons上的onChange事件的實際執行錯誤。 如果您想提供可靠的跨瀏覽器行爲,則必須使用onClick事件。

有關更多信息,請參閱this link

0

顯然這可以使用

$(':radio').click(function() ... 

代替.change來解決。至少在與ie的兼容性方面。

任何人都有線索爲什麼改變失敗或最可能是我做錯了什麼?