Bootstrap 3.3.1 - 突出显示当前导航菜单项

时间:2015-01-29 07:10:37

标签: jquery twitter-bootstrap twitter-bootstrap-3 menu-items

我目前使用的脚本实际上效果很好,只要我保留我的文件结构:

http://website.com/
http://website.com/page1.php
http://website.com/page2.php
http://website.com/page3.php

但是当我诋毁我的mod_rewrite代码以取消“.php”

http://website.com/
http://website.com/page1
http://website.com/page2
http://website.com/page3

我的导航高亮显示脚本停止工作。

以下是我实现代码的方法

HTML

<body id="page1">

JS

$(function() {

    //highlight the current nav
    //each of the following lines represents a different page
    $("#page1 a:contains('Page 1')").parent().addClass('active');
    $("#page2 a:contains('Page 2')").parent().addClass('active');



});

JS中的ID在每个body标签中查找ID,并且('Page 1')部分查找菜单中的项目以标识要突出显示的菜单项。正如我所说,它工作正常,直到拿掉.php。我假设它与js中的.parent有关,但我不确定要用什么替换它,或者如何让它正常工作。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果您的每个网页中的<body>标记包含唯一ID,您只需检查此ID是否存在。

喜欢这个(更新)

for(var i = 0; i < $(".menu-item").length; i++){
    var item = i+1;
    if($("#page"+item).length>0){
        $("li:nth-child("+item+")").addClass("active");
        break;
    }
}

更新您更新的小提琴

Fiddle