Добрый вечер, коллеги!
Прошу помочь человеку, недавно начавшему изучать js
.
Есть задача - некая боковая навигация, состоящая из списка со ссылками, при клике на ссылку должен появляться блок со связанным по теме контентом, при клике на другую ссылку, блок исчезает, появляется другой. Задачу нужно решить посредством использования чистого js
. Подскажите в какую сторону копать, какие темы смотреть?
На сколько я понимаю со своим уровнем логического мышления на данный момент - нужно задать переменную и собрать в нее массив со всеми совпадениями по классу ссылки и в другую переменную совпадения с классом блока (через getElementByClassName
), после чего сравнить их и при совпадении индекса (полагаю через if
) задать блоку класс c видимостью, а у других удалить. Единственное пока не понимаю как в эту схему приклеить клик по конкретной ссылке.
Спасибо.
По последнему вопросу о кликах - пример из lear.javascript не много изменен. А в остальном Вам уже ответил Cheg
function handler1() {
//Делаете что-то с любым элементом
alert('Спасибо ещё раз!');
};
function handler2() {
//Делаете что-то с любым элементом
alert('Спасибо ещё раз!');
}
let redBtn = document.querySelector('.red-btn'); // получаем кнопку
redBtn.addEventListener("click", handler1); // вешаем обработчик, при клике вызывается функция handler1
elem.addEventListener("click", handler2); // вешаем обработчик на input, при клике вызывается функция handler2
<input id="elem" type="button" value="Нажми меня"/>
<button type="button" class="red-btn">Нажми</button>
ну вот с нахрапу как то так
тут логика какая...
если при клике класс у div
такой же как у li
то убираем класс hide
иначе присваиваем оный.
const ul = document.querySelector('ul');
const divs = document.querySelectorAll('.click');
ul.addEventListener('click', el => {
switch (el.target.tagName) {
case 'LI':
const len = divs.length;
for (let i = 0; i < len; i++) {
if (divs[i].classList.contains(el.target.className)) {
divs[i].classList.remove('hide');
} else {
divs[i].classList.add('hide');
}
}
break
}
});
.hide {
display: none;
}
<ul>
<li class="item1">item 1</li>
<li class="item2">item 2</li>
<li class="item3">item 3</li>
<li class="item4">item 4</li>
<li class="item5">item 5</li>
</ul>
<div class="main">
<div class="click item1 hide">item 1</div>
<div class="click item2 hide">item 2</div>
<div class="click item3 hide">item 3</div>
<div class="click item4 hide">item 4</div>
<div class="click item5 hide">item 5</div>
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеются два класса: Article (has_many comments) и Comment(belongs_to article)
Футер и хедер должны быть всегда статичны, а высота дивов регулироваться автоматически, в зависимости от высоты окнаКак можно решить эту...
Доброго времени суток, нужно сделать вот такие вкладки (prntscrcom/gm666f)