2012-04-02 151 views
0

我使用jQuery .load()在多个页面上加载了“navigation.html”(静态编码导航)文件。现在我需要为每个页面用户点击动态设置活动<li>。出于具体原因,我无法使用body id。 任何其他方式来做到这一点?在静态导航上动态设置活动链接

回答

1

相匹配。如果你可以通过类或ID来识别您当前的页面当然这只会工作(例如:身体> DIV#触点)为contacts.html和这个类/ id为独特的,那么你必须与你的导航相匹配,其他方式是匹配window.location.href值(如果你想分析)与你的导航。文件,其中包括你的每一页

function changeActiveLink() { 
    var currentLocation = window.location.href; 
    currentLocation = currentLocation.replace('//', '/').split('/'); 
    var page = currentLocation[currentLocation.length - 1]; 

    if (page == "") { page = 'index.html'; } 

    $('#leftNav1 a[href*="'+ page +'"]').addClass('active'); 
} 

当包括“init.js”这条线是从每个文件名为:

changeActiveLink在JS(init.js EX)定义。

$('#leftNav1').load('navigation.html', changeActiveLink); 
+0

有没有可能得到您的想法的例子? – marb 2012-04-02 19:25:57

+0

后更新:) – h4cky 2012-04-02 19:34:07

+0

不适合我,可能是因为我的navigation.html是一个单独的页面,并正在动态加载... – marb 2012-04-02 20:16:28

0

你可以设置一些jquery脚本来获取url,然后找到与之匹配的li的href。这将允许您将addClass()添加到活动的li。

如果您的href网址

0

或者您可以使用任何HTML甚至HTML5标签来指定li项目。

<li class="some"> 

​​

<li attr-specify="some-specific-in-url"> 

和jQuery与window.location的对象 $( '的Li [标题=“' + window.location.path +'”] “).addClass( “活性”);

+0

好吧似乎合法,但他将如何获得当前页? '[一些]'必须是他所拥有的每个页面的动态值。 – h4cky 2012-04-02 19:17:58

+1

好的,但问题是**静态页面导航**。所以你可以使用javascript window.location来获得真正的href – autumncollection 2012-04-02 21:11:19