Нужна помощь в jquery

Тема в разделе "JavaScript", создана пользователем vivivor, 8 апр 2013.

  1. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Никак не могу понять почему не работает

    HTML:
    <label><input type="radio" name="group1" value="20"/><span>Лампы</span></label>
    <script>
    $("label").click(function () {
      $(this).toggleClass("act");
    });
    </script>
    Класс добавляется только если кликнуть на саму радиокнопку, как это исправить?

    Вот демо

    Если кликать по радиокнопке, то текст станет синим, а если по тексту, то ничего не изменится
     
  2. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    vivivor нравится это.
  3. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    C радиокнопками получилось, а вот с чекбоксами не выходит)
    При первом клике он отмечает, а при втором только удаляет класс
    --- добавлено: Apr 8, 2013 7:59 PM ---
    вот демо
     
  4. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    нашел ответ сам
    Код:
    $('.lbl3').click(function () {
    	if ($('#inp2').is(':checked')) {
    	$(this).toggleClass('hli');
    	var $checkbox = $(this).find(':checkbox');
    	$checkbox.attr('checked', !$checkbox.attr('checked'));
    	} else {
    	}
    });
     
  5. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Простите что вмешиваюсь, но так как сам не понимаю хочу тут спросить совета?!
    Как добавить к диву уникальный class или дописать идентификатор ID?

    Например есть три блока:
    <div id="block"></div>
    <div id="block"></div>
    <div id="block"></div>

    а получилось :
    Код:
    <div id="block_1"></div>
    <div id="block_2"></div>
    <div id="block_3"></div>
    
    А также:
    Код:
    <div id="block" class="1"></div>
    <div id="block" class="1"></div>
    <div id="block" class="1"></div>
    
    Заранее спасибо!
    --- добавлено: May 3, 2013 2:25 PM ---
    Как добавить class к определенному id вроде нашел $('#Div').addClass('1');
    Только как сделать уникальным?
     
  6. saxum2010

    saxum2010

    Регистрация:
    6 фев 2013
    Сообщения:
    111
    Симпатии:
    34
    var random =Math.round(Math.random()*10);
    $("#Div").addClass('unic_' + random);
     
    v@dim нравится это.
  7. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Ага, а random он все время случайно будет генерироваться?

    И на будущеее. Если к диву с классом добавлять id?
     
  8. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    id - уникальное имя элемента. id в коде документа должен быть в единственном экземпляре, иными словами, встречаться только один раз.
    сделай так
    <div id="block1"></div>
    <div id="block2"></div>
    <div id="block3"></div>

    $('#block1').addClass('class1');
    $('#block2').addClass('class2');
    $('#block3').addClass('class3');
     
    v@dim нравится это.
  9. creathou

    creathou Guest

    v@dim нравится это.
  10. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Понятно, но дело в том что блоги генерируются автоматом- динамически, и задать каждому не получится. Каждый из них имеет класс, поэтому и спрашиваю как добавить id или дописать class
    Код:
    <div class="class">
    <div class="class">
    <div class="class">
     
    А надо
     
    <div class="class_1">
    <div class="class_2">
    <div class="class_3">
     
  11. creathou

    creathou Guest

    Опиши суть проблемы, а не выдвигай решение. В чём сложность найти место в шаблоне где генерятся блоки и добавить генерацию айдих?

    Что конкретно нужно добавить и зачем? Не вижу смысла в уникальных классах для одинаковых по сути блоков.

    В любом случае эти твои блоки лежат в каком-нибудь контейнере аля posts-container, почему бы не плясать от него?
    Код:
    var i = 1;
    $('#posts-container').children().each(function(){
    $(this).addClass(i++)
    })
     
    v@dim и vivivor нравится это.