Я новичок в jQuery и мне нужна помощь с фильтрацией классов. Пользователь может выбрать одну из девяти кнопок, чтобы выбрать, какие типы событий отображать / скрывать. Нажмите на цвет, и только события с этим цветным шоу, а остальные будут скрыты. Нажмите «все», и все события отобразятся без скрытых. Все события начинаются с display:block
.
Пример кнопок управления:
<li class="all" id="all-events"><a href="#" onclick="showEvents('event-all')">
<img src="swatch-all.png" alt="" /></a></li>
<li class="red" id="red-events"><a href="#" onclick="showEvents('event-red')">
<img src="swatch-red.png" alt="" /></a></li>
<li class="blue" id="blue-events"><a href="#" onclick="showEvents('event-blue')">
<img src="swatch-blue.png" alt="" /></a></li>
События извлекаются из базы данных php и выглядят так:
<div id="bigCal">
<p class="all"><a href="http://foo.com" title="All event">All events</a></p>
<p class="blue"><a href="http://bar.com" title="Blue event">Blue event</a></p>
<p class="red"><a href="http://foobar.com" title="Red event">Red event</a></p>
</div>
Я работаю над jQuery уже два дня! Не уверен, использовать ли .filter
или .hasClass
или .is
. Ничего из этого не работает. Самое простое, что я попробовал, было:
function showEvents(color) {
($('p').hasClass(color)) ? this.style.display="block" : this.style.display="none";
}
Еще одна попытка, которая ничего не сделала, была
function showEvents(color){
$("p[className*='event-']").css('display', 'none');
$("p[className=color]").css('display', 'block');
if ($("p[className='event-all']"))
$("p[className*='event-']").css('display', 'block');
}
Любая помощь будет оценена!