В одно время оба меню активны

изображение навигационной панели Я помещаю JQuery в свой нижний колонтитул, у него есть ошибка, например, когда я нажимаю на заметки домой и замечаю, что оба раздела активируются, пожалуйста, помогите

<script>
    $(function () {
         setNavigation();
    });

    function setNavigation() {
        var path = window.location.pathname;
        path = path.split('/');
        path = path[path.length-1];

        $(".menu--iris .navbar-nav li a").each(function () {
            var href = $(this).attr('href');
            href = href.split('/');
            href = href[href.length-1];

            if (path === href) {
                $(this).parent('li').addClass('menu__item--current');
            }
        });
    }
</script>

javascript,jquery,

-1

Ответов: 2


1 принят

Используйте ниже код и замените элемент списка домашней страницы в файле заголовка.

<li class="menu__item"><a href="your link here" class="menu__link">Home</a></li>

Если вам нужна помощь, дайте мне знать.

Благодарю.


2

ваш HTML для ссылки HOME выглядит так:

<li class="menu__item menu__item--current">
  <a href="https://easyfreenotes.in/index.php/Site" class="menu__link">Home</a>
</li>

menu__item--currentкласс зашиты здесь, вставляется в PHP - файл. Как правильно заметили @VSM и @jackjop, вы должны удалить этот класс и позволить jQuery решить, где его добавить:

<li class="menu__item">
  <a href="https://easyfreenotes.in/index.php/Site" class="menu__link">Home</a>
</li>

вы также можете удалить этот жесткий код в своем JS-коде:

$(".menu--iris .navbar-nav li.menu__item--current").removeClass('menu__item--current');
$(".menu--iris .navbar-nav li a").each(function () {
  ...
});

BUt лучшее решение, я думаю, будет печатать этот класс в вашем PHP-коде (поскольку вы уже делаете это для ссылки HOME)

Кроме того, я заметил, что у вас есть конечная косая черта в вашей ссылке изображений Easy Notes:

<h1>
  <a class="navbar-brand" href="https://easyfreenotes.in/index.php/Site/">
    <i>E</i>
    <span>asy-Notes</span>
  </a>
</h1>

Я бы рекомендовал удалить эту косую черту:

<a class="navbar-brand" href="https://easyfreenotes.in/index.php/Site">

потому что ваш код jquery проверяет только последний фрагмент вашего URL-адреса против HREF, поэтому /index.php/Site/может быть равен/index.php/Site/paper/

JavaScript, JQuery,
Похожие вопросы