将类添加到活动页面不适用于子文件夹中的页面

时间:2014-01-31 19:07:07

标签: javascript php jquery

我有以下脚本将。。class添加到当前页面:

//Main menu .active classes handler
    $("#mainMenu a").filter(function () {
        var href = location.href.replace(/#*/, "");
        if (location.pathname === "/") {href += "index";}
        return href === this.href;
    }).addClass("active");

对于主目录中的页面,一切正常,但它不适用于子文件夹中的页面,例如:

适用于<a href="index.php">Home</a>,但不适用于:<a href="sub/test.php">Home</a> 为什么?我是否需要添加“最后一个索引”?

完整的HMTL:

<li><a href="index">Home</a></li>
<li><a href="about">About</a></li>
<li class="subMenu"><a href="gallery">Gallery</a>
    <ul>
        <li><a href="sub/test">Page in a sub folder</a></li>
    </ul>
</li>
<li><a href="contact">Contact</a></li>

2 个答案:

答案 0 :(得分:1)

错误不在您的代码中,而是您使用相对路径包含网站javascript的事实:

当您访问/testing/test时,javascript文件将返回404,因为它们是相对的。

assets/js/main.js变为/testing/test/assets/js/main.js

只需使用绝对路径,或者您可以查看设置base href

您应该使用Firebug或Chrome开发工具等开发人员控制台来监控任何错误。我立刻看到404错误,发现它是你的js文件。

答案 1 :(得分:0)

我在脑海中添加<base href="/">解决了这个问题。它就像魔法一样!