2009-12-03 99 views
1

我使用的是相同的JS的人在这个问题回答说:https://stackoverflow.com/questions/302955/active....导航加入jQuery的活动链接

我的问题是,而不是添加类的默认链接我想给类添加到与同一目录的链接。

示例:Page2位于不同的目录中。在该页面上点击导航之外的链接。当你进入下一页时,我怎样才能保持第2页链接上的活动课程?

这里的导航

<div id="nav"> 
       <ul> 
       <li><a href="index.html">Home</a></li> 
       <li><a href="test/index.html">Page2</a></li> 
       <li><a href="test2/index.html">Page3</a></li> 
</ul> 
</div> 

下面是我的jQuery。第一部分作品完美第二部分是我有麻烦的地方:

function markActiveLink() {var currentURL = window.location.toString().split("/"); 
$("#nav li a").filter(function() { 
//alert(currentURL); 
    return $(this).attr("href") == currentURL[currentURL.length-1]; 
    }).parent().addClass("current"); 
if($("#nav li").hasClass("current") == false) { 
    alert(currentURL[currentURL.length-2]); 

    } 
} 

markActiveLink(); 

谢谢你提前!

回答

0

这应该工作。考虑到整个路径不仅仅是它的最后一部分。

function markActiveLink() { 
    var path = location.pathname.substring(1); 
    $('#nav li a[href="' + path + '"]').parent().addClass("current"); 
    if($("#nav li").hasClass("current") == false) { 
     //whatever e.g. select default 
     $('#nav li').eq(0).addClass("current"); 
    } 
} 

markActiveLink(); 
+0

高抖动, 没有工作。它只是保留了第一个元素的类。 – cadenage 2009-12-03 15:44:38

+0

你确定吗?发布后不久我从第一个选择器中删除了一个'$'。可以在'alert(path)'中构建并在注释中发布一些值 – jitter 2009-12-03 19:19:59

+0

那么,这方面的进展如何?你能提供样本值到什么路径评估? – jitter 2009-12-04 19:18:10