nickostyle
@nickostyle

При клике на чекбокс — выделение элемента списка?

Привет всем, я только учусь и возможно вопрос глупый) не обессудьте, в гугле не нашел ничего конкретного.



Задача такая. Есть список с чекбоксами:

<ul>
<li>
<label class="blog-label"><input type="checkbox" name="blog_id[]" value="{$iBlogId}" class="input-checkbox" /> {$blog.name}</label>
</li>
</ul>




Не подскажете плагин jquery или код на js, чтобы при клике на чекбокс выделялся весь li? Т.е. присваивался ему класс checked, к примеру.



дополнение: при повторном клике класс нужно снимать.



Буду искренне признателен!
  • Вопрос задан
  • 9453 просмотра
Решения вопроса 1
vermilion1
@vermilion1
$(function() {
  $('.input-checkbox').click(function() {
    $(this).closest('li').toggleClass('checked');
  });
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
izelenyuk
@izelenyuk
Обычно наоборот стараются по клику на контейнер отмечать checkbox, так юзабельнее и правильнее.
Тем не менее, в качестве примера
$("input.input-checkbox").click(function(){ 
    $(this).parent("li").addClass("checked");
},function(){
    $(this).parent("li"). removeClass("checked");
});

Не проверял, но должно работать.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Зачем?! задача то какая?
присвойте в input type=hidden value=«текст нужного пункта» из списка и все.
Ответ написан
@transpond
На чистом JS (если на проекте не используется jQuery, то подключать его ради этой задачи смысла нет):

<ul> <li> <label class="blog-label"><input type="checkbox" name="blog_id[]" value="{$iBlogId}" class="input-checkbox" onclick="this.parentNode.className += ' checked'"/> {$blog.name}</label> </li> </ul> 
Ответ написан
@Graube
Все это можно сделать с помощью псевдокласса :checked. Недавно, как раз, была статья, можете почитать её, там все элементарно просто. А вот здесь, найдешь, как раз, то, что ищешь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы