Проблема с input[radio]
Доброго времени суток.
Есть опросник с input[radio]. При атрибуте checked необходимо чтобы весь блок менял фоновый цвет. <span> <input type="checkbox" name="a" value="" /> I am very happy!</span> <span> <input type="checkbox" name="a" value="" /> I am very happy!</span> вот скрипт $(document).ready(function(){ $(' span input[type="radio"]').bind('click',function(e) { var $this = $(this); if($this.is(':checked')) $this.parents(' span').addClass('selected'); else $this.parents(' span').removeClass('selected'); }); }); как видно что при условии :checked присваивается класс selected проблема состоит в том, что класс selected в противном случае не удаляется. т.е. после выбора другого варианта background остается. Странное что при iput[checkbox] все работает. Что делать? помогите плиз!!! |
возможно, проблема в проверке, чекнут ли radio
а именно - в $this.is(":checked"). проверьте это сами. |
для радио можно не проверять :checked при клике
если клик, то точно :checked а у соседнего span просто удаляем стиль <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>demo</title> <script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script> <style type='text/css'> .selected { background: red; } </style> <script> $(document).ready(function(){ $(' span input[type="radio"]').bind('click', function (e) { var $this = $(this); $this.parent().addClass('selected'); $this.parent().siblings('span').removeClass('selected'); }); }); </script> </head> <body> <span><input type="radio" name="a" value="" /> I am very happy!</span> <span><input type="radio" name="a" value="" /> I am very happy!</span> </body> </html> |
Спасибо за помощь. :)
|
Часовой пояс GMT +3, время: 04:46. |