Вместо того, чтобы делать то, что вы делаете, и скрывать комнаты, если они не равны чему-то, почему бы вам сначала не спрятать все, а затем показать те, которые вам интересны?Свяжите событие click с флажками в целом, а затем просто прокрутите их, показывая комнаты, соответствующие флажкам.
Попробуйте это jsFiddle
Это jQuery, который делает элементы скрытыми или видимыми:
$('input').click(function() {
$('.listing').hide();
$('input').each(function(index) {
if ($(this).is(':checked')) {
$('.listing[bedrooms="' + $(this).attr('id') + '"]').show();
}
});
});
Обратите внимание, что, чтобы сделать эту работу, кроме нового jQuery, я изменил ваш HTML для списков так, чтобы атрибут спальни соответствовалИдентификатор ваших флажков.Таким образом, вместо того, чтобы ваши списки комнат имели атрибут, такой как bedrooms="2 Bedroom"
, у них был атрибут bedrooms="2B"
(студия осталась прежней).Также обратите внимание, что идентификаторы никогда не должны начинаться с цифры, и я просто сохранил их в своем примере, чтобы минимизировать изменения кода.Вы можете легко изменить их с 1B, 2B, 3B и т. Д. На B1, B2, B3 и т. Д.