2014-08-28 3 views
0

Моего HTML код:Checkbox фильтр лития элементы

<ul id="filter"> 
<label><li><input type="checkbox" data="rady-a-tipy" id="checkbox">Rady a tipy</input></li></label> 
<label><li><input type="checkbox" data="osobni-rozvoj" id="checkbox">Osobní rozvoj</input></li></label> 
<label><li><input type="checkbox" data="rozhovory" id="checkbox">Rozhovory</input></li></label> 
</ul> 

И тогда я этот код, то первая часть ограничивают флажки проверки, так что пользователь может проверить только один «фильтр» в то время. И вторая часть меняется

LI

цвет фона по щелчку, чтобы показать, что фильтр был «выбран».

// Checkbox limit 
$(function() { 
    $('input[type="checkbox"]').bind('click',function() { 
    $('input[type="checkbox"]').not(this).prop("checked", false); 
    }); 
}); 
// Background-color on parent change 
$("input[type='checkbox']").on('click', function(){ 
    $('#filter li').removeClass('bgc'); 
    $(this).parent().addClass('bgc'); 
}); 

проблемы есть .. мне нужно сделать еще одну вещи, и это то, что если я снова нажмите на выделенный фильтр (снимите его) Я хочу, чтобы класс КУПЫ, чтобы удалить из него. Прямо сейчас, если я снова нажму на выделенный фильтр, он отменит его, но фон останется там.

Все это связано с другим файлом сценария, который проверяет, отмечен ли какой-либо из этих флажков, и запрашивает сообщения на основе отмеченного значения «данные». Все работает, мне просто нужна эта маленькая вещь.

ответ

0

Использование:

$("input[type='checkbox']").on('click', function(){ 
    $('#filter li').not($(this).parent()).removeClass('bgc'); 
    $(this).parent().toggleClass('bgc'); 
}); 
+0

Ого, это было очень быстро спасибо! Я не могу поверить, что это не пришло мне в голову> _

+0

@ JanDočekal: рад, что это помогает :) –

Смежные вопросы