Забыли пароль?
Запросите новый здесь.

Автор темы: Chief
ID темы: 1899
Информация:
Тема содержит 4 сообщения, была просмотрена 2458 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » Javascript, ajax, jquery
 Распечатать тему
Не получается определить атрибут checked в jQuery
Chief
Собственно простейшая проблема, но почему то туплю.

Есть группа радиокнопок, каждая имеет одинаковый для всех класс и обернута в label.

Загрузить источник  GeSHi: HTML
  1. <label><input type="radio" name="name" value="1" class="class" checked="checked" /> Первая</label>
  2. <label><input type="radio" name="name" value="2" class="class" /> Вторая</label>
  3. <label><input type="radio" name="name" value="3" class="class" /> Третья</label>
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10

При переключении радиокнопок, присваиваю класс оборачивающим их label:

Загрузить источник  GeSHi: Javascript
  1. $(".class").change(function() {
  2. if ($(this.checked)) {
  3. $(".class").parent().removeClass("current");
  4. $(this).parent().addClass("current");
  5. }
  6. });
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10

После клика, лейбл выбранной радиокнопки ловит стиль «current».

Но нужно чтобы у инпута который по умолчанию checked="checked", класс «current» присваивался изначально.

Вариант:

Загрузить источник  GeSHi: Javascript
  1. if ($(".class").is(":checked")) {
  2. $(this).parent().addClass("current");
  3. }
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10

Не работает. Что я делаю не так?
У богатых людей — большая библиотека. У бедных людей — большой телевизор.
 
Razor
Скачать исходники  Код
<script type="text/javascript">
    $(document).ready(function(){
        $('.test').filter(':checked').each(function(index) {
            $(this).parent().addClass("current");
        });
        $(".test").click(function() {
            if ($(this.checked)) {
                $(".test").parent().removeClass("current");
                $(this).parent().addClass("current");
            }
        });

    });

</script>
<label><input type="radio" name="name" value="1" class="test" checked="checked" /> Первая</label>
<label><input type="radio" name="name" value="2" class="test" /> Вторая</label>
<label><input type="radio" name="name" value="3" class="test" /> Третья</label>



Вот так работает вроде..
x1
 
Chief
Да, в цикле работает. Я что-то думал is должно и так находить элемент.

Razor, спасибо за оперативный совет. В итоге, избавился от цикла и сделал это одной строчкой. Заодно убрал у всех радиокнопок класс, обернув группу элементом.

Загрузить источник  GeSHi: Javascript
  1. $(".radioform input:radio:checked").parent().addClass("current");
Добавлено за 0.001 секунд, используя GeSHi 1.0.8.10


Загрузить источник  GeSHi: HTML
  1. <div class="radioform">
  2. <label><input type="radio" name="name" value="1" checked="checked" /> Первая</label>
  3. <label><input type="radio" name="name" value="2" /> Вторая</label>
  4. <label><input type="radio" name="name" value="3" /> Третья</label>
  5. </div>
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10

Изменил(а) Chief, 11.11.2013 19:11
У богатых людей — большая библиотека. У бедных людей — большой телевизор.
 
Razor
без проблемab
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: