我有以下脚本将。。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>
答案 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="/">
解决了这个问题。它就像魔法一样!