jquery - 如何在特定页面上更改导航栏的颜色?

标签 jquery html css

我在一个网站上有一个导航栏,当我在那个特定页面上时,我希望页面名称改变颜色,这样当我点击另一个页面时,它会恢复到原来的颜色和新页面选择将改变颜色。

我环顾四周试图让它工作,我所能做的就是在我点击它时改变颜色,然后页面加载并恢复到原来的颜色。

列表:

<nav>
    <ul class="navigation">
        <li><a href="pages/page1.html" title="Page One">Page One</a></li>
        <li><a href="pages/page2.html" title="Page Two">Page Two</a></li>
        <li><a href="pages/page3.html" title="Page Three">Page Three</a></li>
    </ul>
</nav>

CSS:

.navigation .active {
background-color: #CF5C3F;
}

.navigation li { 

float:left; border-right:1px solid #5d5d5d; 
border-left:1px solid #929292;
width: 268px; 
height: 34px; 
border-bottom:1px solid #575757; 
border-top:1px solid #797979;
background-color:#5f5f5f;
}

J查询:

$('.navigation a').click(function(){
    $(this).addClass('active').siblings().removeClass('active');
    });

有谁知道哪里出了问题吗?这真的让我很烦。

最佳答案

尝试使用页面名称为您更改类别。这是获取页面名称的方法(我从这里获取:How to get the pagename from the URL without the extension through JQuery

function getPageName(url) {
    var index = url.lastIndexOf("/") + 1;
    var filenameWithExtension = url.substr(index);
    var filename = filenameWithExtension.split(".")[0]; // <-- added this line
    return filename;                                    // <-- added this line
}

在每个链接上放置一个 id,该 id 也等于页面名称。然后当页面加载时只需添加类,无需在点击时执行此操作:

<nav>
    <ul class="navigation">
        <li><a id="page1" href="pages/page1.html" title="Page One">Page One</a></li>
        <li><a id="page2" href="pages/page2.html" title="Page Two">Page Two</a></li>
        <li><a id="page3" href="pages/page3.html" title="Page Three">Page Three</a></li>
    </ul>
</nav>

$(function(){
   var currentPageName = getPageName(window.location.pathname);
   $('#' + currentPageName).addClass('active');
});

我有点懒,没有测试这个,但它应该让你接近你正在寻找的东西。

关于jquery - 如何在特定页面上更改导航栏的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21364464/

相关文章:

javascript - 想要在选择选项中附加 Ajax 响应数据

css - 使用 CSS3 将圆圈分段

php - 将 CSS 与变量 php 结合

php - 生成的 css 代码未加载

css - Relative和Absolute定位相关的div定位问题

javascript - 使用计时器更改类中所有 <div> 的 CSS 样式

javascript - 插入有序数组的计算效率最高的方法?

php - 如何从大数据集中做搜索推荐

Jquery Dialog - 多次添加到 DOM 的对话框字段

python - (Django) 如何在单个 view.py 文件中遵循数据库备份和恢复工作流程?