Javascript 导航栏项目不';不要在我的JS代码中突出显示
我试图突出显示用户当前所在页面的导航栏项目,逻辑似乎正常,但不起作用:以下是连接到所有页面的基本导航栏:Javascript 导航栏项目不';不要在我的JS代码中突出显示,javascript,html,css,Javascript,Html,Css,我试图突出显示用户当前所在页面的导航栏项目,逻辑似乎正常,但不起作用:以下是连接到所有页面的基本导航栏: <nav class="navbar-container"> <ul class="navbar-top"> <li><a class="nav-l" href="{{ url_for('home') }}">Home
<nav class="navbar-container">
<ul class="navbar-top">
<li><a class="nav-l" href="{{ url_for('home') }}">Home</a></li>
<li><a class="nav-l" href="{{ url_for('gallery') }}">Gallery</a></li>
<li><a class="nav-l" href="{{ url_for('prices_delivery') }}">Prices and Delivery</a></li>
<li><a class="nav-l" href="{{ url_for('contacts') }}">Contacts</a></li>
</ul>
</nav>
这是JavaScript代码:
function navbarHighlight() {
let navLinks = document.querySelectorAll('.nav-l');
navLinks.forEach(navLink => {
navLink.addEventListener('click', function() {
navLinks.forEach(navLink => navLink.classList.remove('current'));
navLink.classList.add('current');
});
});
}
单击后,您的页面正在刷新。如果您在javascript中的“click”事件上应用了一个类,那么元素将拥有该类,但随后页面将发生更改和刷新,就好像您的javascript从未运行过一样
您可以在服务器端执行这种操作。如果您确实希望它基于您拥有的“单击”功能,我建议使用“会话存储”来说明上次单击的导航按钮。这样,在页面刷新时,您可以检查会话存储并突出显示当前页面。或者您可以使用
窗口。location
确定当前页面并从那里突出显示。单击后,您的页面将刷新。如果您在javascript中的“click”事件上应用了一个类,那么元素将拥有该类,但随后页面将发生更改和刷新,就好像您的javascript从未运行过一样
您可以在服务器端执行这种操作。如果您确实希望它基于您拥有的“单击”功能,我建议使用“会话存储”来说明上次单击的导航按钮。这样,在页面刷新时,您可以检查会话存储并突出显示当前页面。或者您可以使用窗口。location
确定当前页面并从那里突出显示。
(函数navbarHighlight(){
让navLinks=document.queryselectoral('.nav-l');
navLinks.forEach(navLink=>{
navLink.addEventListener('click',function(){
navLinks.forEach(navLink=>navLink.classList.remove('current');
navLink.classList.add('current');
});
});
})()
.navbar top.current{
颜色:绿色;
}
(函数navbarHighlight(){
让navLinks=document.queryselectoral('.nav-l');
navLinks.forEach(navLink=>{
navLink.addEventListener('click',function(){
navLinks.forEach(navLink=>navLink.classList.remove('current');
navLink.classList.add('current');
});
});
})()
.navbar top.current{
颜色:绿色;
}
谢谢大家我用不同的方法得到了它:
const currentLocation = location.href;
const menuItem = document.querySelectorAll('a');
const menuLength = menuItem.length;
for (let i=0; i< menuLength; i++) {
if (menuItem[i].href === currentLocation){
menuItem[i].className = 'current'
}
};
const currentLocation=location.href;
const menuItem=document.querySelectorAll('a');
const menulelength=menuItem.length;
for(设i=0;i
谢谢大家我用不同的方法得到了它:
const currentLocation = location.href;
const menuItem = document.querySelectorAll('a');
const menuLength = menuItem.length;
for (let i=0; i< menuLength; i++) {
if (menuItem[i].href === currentLocation){
menuItem[i].className = 'current'
}
};
const currentLocation=location.href;
const menuItem=document.querySelectorAll('a');
const menulelength=menuItem.length;
for(设i=0;i
我认为这比我的技能更高级,你能澄清一下吗?你的javascript运行得很好。但是当用户点击一个链接后,标签页就会转到一个新的页面。所以你的javascript运行了,它就在上一页上运行了这个JSFIDLE显示您的代码实际上运行良好。点击一个链接会将你带到一个新页面,因此你编写的javascript不会在新页面上运行,而是在你刚刚离开的页面上运行。我认为这比我的技能更高级,你能澄清一点吗?你的javascript运行得很好。但是当用户点击一个链接后,标签页就会转到一个新的页面。所以你的javascript运行了,它就在上一页上运行了这个JSFIDLE显示您的代码实际上运行良好。但是,单击链接会将您带到一个新页面,因此您编写的javascript不会在新页面上运行,而是在您刚刚离开的页面上运行。我希望它会:)可能是您没有调用它,尝试像我那样调用它。我希望它会:)可能是您没有调用它,尝试像我那样调用它。