2009-12-29 2 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> 

и яваскрипта

$(':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

ответ

3

IE (все версии) имеют действительно ошибочную реализацию события onChange на checkboxes и radio buttons. Если вы хотите обеспечить отличное кросс-браузерное поведение, вам необходимо использовать событие onClick.

См. this link для получения дополнительной информации.

0

по-видимому, это может быть решено с помощью

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

вместо .Кнопки. по крайней мере, с точки зрения совместимости с т. е.

У кого-нибудь есть ключ, почему изменение не удается или, скорее всего, что я делаю неправильно?