У меня есть страница с списком контента. Затем у меня есть фильтры, чтобы кто-то мог сузить их поиск. Я хотел бы показать/скрыть блок информации на боковой панели в соответствии с фильтром, который кто-то нажал. В основном щелчок по фильтру покажет/спрячет эти DIV.
Вот два фильтра. Обратите внимание, что тот, который выбран в данный момент, имеет добавленный класс "active" в двух местах.
<div class="container">
<ul class="filters">
<li class="first active>
<a class="filterbutton active" href="#filter">Category 1</a>
</li>
<li class="last">
<a class="filterbutton" href="#filter">Category 2</a>
</li>
</ul>
</div>
Когда страница загружается, категория 1 активна по умолчанию, поэтому я покажу свой соответствующий DIV-блок-1 по умолчанию.
Вот где должно быть волшебство: когда щелчок по ссылке фильтра выше, я хотел бы показать/скрыть два DIV, которые я загрузил.
<div id="block-1">content</div> <—— Hide this one.
<div id="block-2">content</div> <—— Display this one.
Также важно, чтобы пользователь нажимал на первую категорию, чтобы вернуться к представлению по умолчанию, показывая только первый блок.
ОБНОВЛЕНИЕ: Это заняло много времени, но я, наконец, понял это. Используя "дубликат" ответа, я приспособил его к моим потребностям. Я также использовал другой код для добавления необходимых атрибутов "rel", которые мне нужны.
Вы можете сделать это с помощью функции переключения: http://jsfiddle.net/AU8fX/1/
$( ".filterbutton" ).on( "click", function() {
$('.block').toggle();
});
Это, безусловно, возможно с помощью простых js и CSS, однако препятствие будет заключаться в том, что он не выглядит раздражающим. Я бы рекомендовал использовать изотоп jQuery. http://isotope.metafizzy.co. Это не только для макетов, но и для фильтрации. Если вам вообще не нужна его для макета, вы также можете использовать https://mixitup.kunkalabs.com
Вы говорите, что ваш JS не так хорош, давайте посмотрим, смогу ли я дать вам достаточно подсказок:
<a class="filterbutton active" data-target="#example" href="#filter">Category 1</a>
HTML5 имеет атрибуты группы данных. Я написал цель, но вы можете поместить все, что угодно, это может быть для вашего просто кода.
Вы можете получить это при нажатии:
$('.filterbutton').on('click', function(){
// do something with the click
alert( $(this).data('target') ); // I alert it, you van use this as a selector
}):
Вы можете легко переключать активный класс с помощью некоторого кода в onclick:
$('.active').removeClass('active');
$(this).addClass('active');
Чтобы показать и скрыть элементы:
$('.SomeElements').hide();
$( specific selector).show();
js
в первом предложении? JQuery это JavaScript, а также ..