2012-03-01 3 views
0

Прошло 5 часов с тех пор, как я борюсь с этим, я искал вверх и вниз. Я пытаюсь изменить TABLE CELL BACKGROUND, который содержит CHECKED RADIO. Мне удастся добавить класс фона, но я не могу удалить его фон при снятой отметке.JQuery - Удаление класса на CHECKED/UNCHECKED RADIO BUTTONS

Вот код, я использую:

http://jsfiddle.net/ceWbW

Во всяком случае, чтобы удалить фоновый класс после того, как радио сняты? Мне это не удалось. Спасибо!

ответ

0

$("td input:not(:checked)") связывает событие только с непроверенными элементами.

Привяжите его ко всем td input элементам и используйте this.checked внутри обратного вызова для доступа к проверенному состоянию.

Вот пример: http://jsfiddle.net/ceWbW/5/

$("td input").change(function() { 
    var $this = $(this); 
    var td = $this.parent(); 
    // un-green all columns which contain a radio element from the same group 
    td.siblings().filter(function() { 
     return !!$(this).find('input[name="'+$this.attr('name')+'"]:radio').length; 
    }).removeClass('green'); 
    // green the current column in case the radiobox is enabled 
    if(this.checked) { 
     td.addClass('green'); 
    } 
}); 
+0

Удивительно, спасибо большое! Теперь пора исправить мою головную боль! – user1243801