У меня есть CSS-меню на сайте html:
<div id='cssmenu'>
<ul>
<li class='active'><a href='index.php'><i class="fa fa-home"></i></a></li>
<li><a href='about.php'>About</a>
<ul>
<li><a href='#'>Me</a></li>
<li><a href='#'>Compeny</a></li>
</ul>
</li>
<li><a href='#'>Contact</a></li>
</ul>
</div>
Теперь я преобразовал этот html файл в php и назвал "NAVEGATION.PHP", а затем включил этот файл во все файлы.
Проблема в том, что фокус (класс: активный) застрял на кнопке "Главная".
Я хотел бы, чтобы при изменении страницы фокус меню соответствовал странице.
Я также пробовал JavaScript, но он не работает для меня:
$(function () {
var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
$(".cssmenu ul li").each(function () {
if ($(this).attr("href") == pgurl) {
$(this).parent().addClass('active');
}
if ((($(this).attr("href") == 'index.php')||($(this).attr("href") == '')) && (pgurl == '')) {
$(this).parent().addClass("active");
}
})});
Вы можете использовать $_SERVER['PHP_SELF']
который получит ваш текущий путь, и basename
, извлечет имя файла из пути, и после этого вы можете просто сравнить со ссылкой на меню
<div id='cssmenu'>
<ul>
<li <?php echo (basename($_SERVER['PHP_SELF']) == 'index.php') ? 'class="active"' : ''; ?>><a href='index.php'><i class="fa fa-home"></i></a></li>
<li <?php echo (basename($_SERVER['PHP_SELF']) == 'about.php') ? 'class="active"' : ''; ?>><a href='about.php'>About</a>
<ul>
<li><a href='#'>Me</a></li>
<li><a href='#'>Compeny</a></li>
</ul>
</li>
<li><a href='#'>Contact</a></li>
</ul>
</div>
echo basename($_SERVER['PHP_SELF'])
- попробуйте повторить выше и проверьте, что он выводит