BootStrap4 没有在Navbar上设置Active Page
BootStrap 4 does not set the Active Page on the Navbar
在搜索问题和回复后,我仍然无法让 NAVBAR 在当前页面上添加 class "active"。
$(document).ready(function () {
$(".nav-link").on("click", function(){
$(".nav-link").find(".active").removeClass("active");
$(this).parent().addClass("active");
});
});
我确实看到 class 添加了 并且当新页面加载时 class 消失了..??我无法理解这个 jquery。
我发现的解决方法是提供变量
<?php pageID = "index"; ?>
在每个页面和相应的 'nav-link' 一个 class
<?php echo(pageID=="index") ? "active" : "" ?>
顺便说一句,导航栏代码位于每个页面上加载的 header.php include('header.php');
寻找有关如何使用 jquery 而不是变通
的指南
实际上,您的解决方法是实现此目的的典型方法。 Javascript 不会保留它通过您的导航所做的更改。要在 JS 中实现你想做的事情,你可能想使用 localStorage
/* Sample code */
localStorage.setItem('activeMenu', 'blog');
$(function(){
if (localStorage.getItem('activeMenu') === 'blog') {
$('#blogNavLink').addClass('active');
}
}
如果您想在 PHP 中执行此操作,您可能会使用 PHP 变量或包含选择器的隐藏输入并在 JS 中使用它。
$activeMenu = 'blog';
<input type="hidden" id="menuItem" value="<?= $activeMenu ?>">
$(function(){
if ($('#menuItem').val() === 'blog') {
$('#blogNavLink').addClass('active');
}
}
在搜索问题和回复后,我仍然无法让 NAVBAR 在当前页面上添加 class "active"。
$(document).ready(function () {
$(".nav-link").on("click", function(){
$(".nav-link").find(".active").removeClass("active");
$(this).parent().addClass("active");
});
});
我确实看到 class 添加了 并且当新页面加载时 class 消失了..??我无法理解这个 jquery。
我发现的解决方法是提供变量
<?php pageID = "index"; ?>
在每个页面和相应的 'nav-link' 一个 class
<?php echo(pageID=="index") ? "active" : "" ?>
顺便说一句,导航栏代码位于每个页面上加载的 header.php include('header.php');
寻找有关如何使用 jquery 而不是变通
的指南实际上,您的解决方法是实现此目的的典型方法。 Javascript 不会保留它通过您的导航所做的更改。要在 JS 中实现你想做的事情,你可能想使用 localStorage
/* Sample code */
localStorage.setItem('activeMenu', 'blog');
$(function(){
if (localStorage.getItem('activeMenu') === 'blog') {
$('#blogNavLink').addClass('active');
}
}
如果您想在 PHP 中执行此操作,您可能会使用 PHP 变量或包含选择器的隐藏输入并在 JS 中使用它。
$activeMenu = 'blog';
<input type="hidden" id="menuItem" value="<?= $activeMenu ?>">
$(function(){
if ($('#menuItem').val() === 'blog') {
$('#blogNavLink').addClass('active');
}
}