Пример ссылки:
http://localhost/test/page.php
У меня есть код JavaScript, который будет помещать active
класс в навигатор, если URL-адрес этого href ==== current_url
.
Текущий JavaScript (только добавляет активный класс к боковой панели)
<script type="text/javascript"> jQuery(function($) { var path = window.location.href; // because the 'href' property of the DOM element is the absolute path $('ul a').each(function() { if (this.href === path) { $(this).addClass('sub-menu active'); $(this).parent().closest("li").addClass('active'); $(this).parent().parent().closest("li").addClass('active'); } }); }); </script>
Я хочу, чтобы он работал, если ссылка имеет page.php?success
Также будет активный класс, если page.php
существует независимо от того, что после ?
,
Я попробовал следующий скрипт ниже, чтобы извлечь базовое имя, но теперь он вообще не работает, страницы с или без ?
,
Пробный скрипт (предположительно, чтобы включить активный класс в боковую панель, даже если URL имеет успех page.php
?
<script type="text/javascript"> jQuery(function($) { var patharray = window.location.pathname.split( '/' ); var reallink = patharray[2]; $('ul a').each(function() { if (this.href === reallink) { $(this).addClass('sub-menu active'); $(this).parent().closest("li").addClass('active'); $(this).parent().parent().closest("li").addClass('active'); } }); }); </script>
С приведенным выше примером. Сценарий возвращает page.php
И href
внутри navbar – это просто page1.php
, page2.php
т. Д. Поэтому я знаю, что он должен работать, так как извлеченная reallink
равна href
на навигационной панели.
Моя боковая панель
<li class="sub-menu"> // Sidebar with no submenu <a class="" href="page1.php"> <i class="icon-calendar"></i> <span>This is page 1</span> </a> </li> <li class="sub-menu"> // Sidebar with a submenu <a href="javascript:;" class=""> <i class="icon-group"></i> <span>This has sub pages</span> <span class="arrow"></span> </a> <ul class="sub"> <li><a class="" href="page2.php">This is page 2</a></li> <li><a class="" href="page3.php">This is page 3</a></li> </ul> </li>
Таким образом, первый JavaScript ставит активный класс как родительскому, так и дочернему, если выполняется href = url. Но со вторым скриптом ничего не работает.
Я предполагаю, что изменение этой строки в первом скрипте заставит ее работать
var path = window.location.href.split( '?' )[0];