Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.05.2015, 18:11
Аватар для ogurchik
Аспирант
Отправить личное сообщение для ogurchik Посмотреть профиль Найти все сообщения от ogurchik
 
Регистрация: 23.02.2015
Сообщений: 45

кастомизация чекбоксов
Нужно сделать чекбоксы "красивыми".
На лейбл, в которых лежат чекбоксы, прикрепляется класс "checkbox-checked" в котором картинка с отмеченным чекбоксом. Так на лейбле на бекграунде стоит картинка пустого чекбокса.
вторая цепочка методов не работает как надо, если нажать на чекбокс, то класс "checkbox-checked" снимается со всемх чекбоксов, и присвается тому чекбоксу, на который был произведен клик. если чекбокс уже был отмечен, то класс снимается и с него тоже.
$(window).load(function() {
//проверяет при загрузке страницы, отмечен чекбокс или нет и на отмеченные чекбоксы вешает класс.
    $('input[type="checkbox"]').each(function () {
        if ($(this).prop('checked')) {
            $(this).parent().addClass('checkbox-checked');
        }
     });

  //по клику лейблу присваивается или удаляется класс, в зависимости от того, что в атрибуте "checked". 
    $('input[type="checkbox"]').bind("change", function(){
      if ($(this).is(":checked")) {
          $(this).parent('label').addClass('checkbox-checked');
      }
      else {
         $(this).parent('label').removeClass('checkbox-checked');
      }
    });

как я понимаю, проблема во всплытии событий, но уверенности нет. подскажите, в чем проблема, как ее можно устранить? как найти по ней инфу? заранее за помощь большая благодарность.
Ответить с цитированием
  #2 (permalink)  
Старый 19.05.2015, 18:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

ogurchik,
html минимальный где?
Ответить с цитированием
  #3 (permalink)  
Старый 20.05.2015, 10:53
Аватар для ogurchik
Аспирант
Отправить личное сообщение для ogurchik Посмотреть профиль Найти все сообщения от ogurchik
 
Регистрация: 23.02.2015
Сообщений: 45

<label class="checkbox-checked"><input type="checkbox" checked="true"/>один</label>
<label><input type="checkbox"/>два</label>
<label><input type="checkbox"/>три</label>
<label class="checkbox-checked"><input type="checkbox" checked="true"/>четыре</label>
Ответить с цитированием
  #4 (permalink)  
Старый 20.05.2015, 11:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

ogurchik,
видимо вы что-то не договаривате ... всё ок
в 1 посте пропущена строка 18
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   .checkbox-checked {
    background: #FFCC00;
  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
 $(window).load(function() {
//проверяет при загрузке страницы, отмечен чекбокс или нет и на отмеченные чекбоксы вешает класс.
    $('input[type="checkbox"]').each(function () {
        if ($(this).prop('checked')) {
            $(this).parent().addClass('checkbox-checked');
        }
     });

  //по клику лейблу присваивается или удаляется класс, в зависимости от того, что в атрибуте "checked".
    $('input[type="checkbox"]').bind("change", function(){
      if ($(this).is(":checked")) {
          $(this).parent('label').addClass('checkbox-checked');
      }
      else {
         $(this).parent('label').removeClass('checkbox-checked');
      }
    });
})

  </script>
</head>

<body>
<label class="checkbox-checked"><input type="checkbox" checked="true"/>один</label>
<label><input type="checkbox"/>два</label>
<label><input type="checkbox"/>три</label>
<label class="checkbox-checked"><input type="checkbox" checked="true"/>четыре</label>



</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 20.05.2015, 13:01
Аватар для ogurchik
Аспирант
Отправить личное сообщение для ogurchik Посмотреть профиль Найти все сообщения от ogurchik
 
Регистрация: 23.02.2015
Сообщений: 45

тогда наверное дело в чем-то еще в коде. спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать в цикле value чекбоксов AntonMs Общие вопросы Javascript 8 28.04.2015 21:11
Создание массива с id чекбоксов fi.adm Элементы интерфейса 4 17.08.2014 11:55
Копирование значений чекбоксов в поле tai jQuery 2 16.07.2014 04:36
Чекбокс (переключатель группы чекбоксов) DVNSA Общие вопросы Javascript 6 15.08.2011 14:38
Выделить группу чекбоксов. В группе может быть только один чекбокс. JooZ Элементы интерфейса 2 23.12.2009 19:28