@khomaldi
разбираюсь потихоньку

Какие теги указать js скрипте для меню?

Есть html:
<nav>
    <ul>
        <li><a href="index.php" class="">Главная</a></li>
        <li><a href="about.php" class="">Новости</a></li>
        <li><a href="about.php" class="">Услуги</a></li>
        <li><a href="about.php" class="">Проекты</a></li>
        <li><a href="about.php" class="">О нас</a></li>
        <li><a href="about.php" class="">Контакты</a></li>
        <li><a href="about.php" class="introduce">Презентация</a></li>
    </ul>
</nav>


Есть css:
nav ul a.active {
    font-weight: bold;
    text-decoration: underline;
    color: #a29061;
}


Есть js:
var link = window.location.pathname;
 $('???? a [href="'+link+'"]').parent().addClass('active')


Вопрос: какие теги нужно указывать вместо "????", чтобы было правильно? Если просто написать: <a href="" class="active"></a>, то всё работает. А если через js, то пытался разные вариации, но не работает.

Возможно, это чуть прояснит ситуацию: тык-тык
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Mysterion
$('a').on('click', function() {
    $(this).addClass('active');
});
Ответ написан
profesor08
@profesor08 Куратор тега CSS
Названия говорят сами за себя.
.menu
.menu-item
.is-active


Далее, отталкиваясь от корневого элемента, взаимодействуй с дочерними.
$(".menu").each(function() {
  let $menu = $(this);
  let $menuItems = $menu.find(".menu-item");

  // по клику убирается класс is-active со всех пунктов конкретного меню и добавляется тому, по которому был клик.
  $menuItems.on("click", function() {
    $menuItems.removeClass("is-active");
    $(this).addClass("is-active");
  });
});
Ответ написан
Комментировать
@ZENbZ
Начинающий веб-разработчик, чуточку программист
Впиши в nav id #menu (например) и вместо ???? пишешь, #menu li
Ответ написан
Stalker_RED
@Stalker_RED
$('nav a[href="'+link+'"]').parent().addClass('active')
если у вас не один nav на странице, то сработает для каждого.
или можно указать нужному меню какой-то особый класс
обратите внимание, после a пробела не должно быть
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы