Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导航栏项目不';不要在我的JS代码中突出显示_Javascript_Html_Css - Fatal编程技术网

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不会在新页面上运行,而是在您刚刚离开的页面上运行。我希望它会:)可能是您没有调用它,尝试像我那样调用它。我希望它会:)可能是您没有调用它,尝试像我那样调用它。