Я знаю, что это задавали несколько раз, но ни один из вопросов не соответствует моему случаю.
Это мой веб-сайт временной шкалы: http://witch-house.com/thetimeline/
Он использует эту структуру:
<ul>
<li class="blog"></li>
<li class="blog"></li>
<li class="artist"></li>
<li class="mix"></li>
<li class="blog"></li>
<li class="artist"></li>
.
.
.
</ul>
сейчас я хочу, чтобы на моем веб-сайте было 4 нажимаемых кнопки: «ПОКАЗАТЬ ВСЕ», «ХУДОЖНИКИ», «БЛОГИ», «СМЕШИВАНИЯ»
по умолчанию включена опция ПОКАЗАТЬ ВСЕ, и при нажатии на ХУДОЖНИКИ будут отображаться все <li>
элементы
, на веб-сайте будут отображаться только все элементы <li>
, помеченные class="artist"
+, сменить кнопку ХУДОЖНИКИ цвет на красный
при нажатии на БЛОГИ поверх этого появятся все <li>
элементы, отмеченные class="blog"
(рядом с ранее выбранными ХУДОЖНИКАМИ) + кнопка также изменит цвет на красный
et c
при повторном нажатии кнопки ПОКАЗАТЬ ВСЕ все элементы должны быть видны, а все остальные кнопки должны go вернуться к стандартному цвету.
Я нашел это " простое "решение: https://isabelcastillo.com/toggle-showhide-multiple-elements-with-pure-javascript
, но оно предназначено только для одного элемента не все элементы класса:
HTML
<h2 class="clickable-heading">Toggle This Dropdown</h2>
<ul>
<li><a href="#">How To Do This</a></li>
<li><a href="#">Installing in The Mid 90s</a></li>
</ul>
<h2 class="clickable-heading">Click This Dropdown 2</h2>
<ul>
<li><a href="#">Vote For Pedro</a></li>
<li><a href="#">Your Name is Napoleon?</a></li>
</ul>
JS
function toggleDocs(event) {
if (event.target && event.target.className == 'clickable-heading') {
var next = event.target.nextElementSibling;
if (next.style.display == "none") {
next.style.display = "block";
} else {
next.style.display = "none";
}
}
}
document.addEventListener('click', toggleDocs, true);
is есть способ настроить это?
или, может быть, другое предложение, как справиться с этим?
спасибо!