0

我不是一个真正的网络程序员,也不是一个说英语的人,所以如果我说了一些不合逻辑的话,请原谅我。

我正在尝试根据活动的 URL 在导航的每个“li”项上添加一个图标类,我不知道它是否重要,但我正在使用 twitter 引导程序。HMTL:

<ul class="nav">
   <li class="active"><a href="index.html">Inici</a></li>
   <li><a href="servi.html">Serveis</a></li>
   <li><a href="acti.html">Activitats</a></li>
   <li><a href="contact.html">Contacte</a></li>
   <li id="date"><i class="icon-calendar"></i></li>
</ul>

Javascript:

function activeLinkNav(){

  var href = location.href.toLowerCase();
  var separa = href.split('/'); // cut the string on '/'
  var lastUri = separa[separa.length-1]; // accessing last item [separa]


$('.nav li a').each(function(){
    if (href.indexOf(this.href.toLowerCase())> -1){

        switch (true){

            case lastUri == 'index.html':
                $(this).prepend('<span><i class="icon-home"></i></span>');
                break;

            case lastUri == 'servi.html':
                $(this).prepend('<span><i class="icon-user-md"></i></span>');
                break;

            case lastUri.indexOf('acti.html')!== -1:
                $(this).prepend('<span><i class="icon-group"></i></span>');
                break;

            case lastUri == 'contact.html':
                $(this).prepend('<span><i class="icon-envelope"></i></span>');
                break;
        }

    } else $(this).prepend('<i class="icon-double-angle-right"></i>');
});
}

一切正常,除了当我访问根域,调试我的代码时,我看到 lastUri = ""; 那么为什么如果我把这个:

            case lastUri == "":
                $(this).prepend('<span><i class="icon-home"></i></span>');
                break;

代码不起作用?

我已经尝试了很多东西,但这是我所有的知识,你知道吗?

有问题的网络:

http://residencia-geriatrica-ergos.com/

谢谢!!

4

1 回答 1

0

因为if (href.indexOf(this.href.toLowerCase())> -1) 不会是真的。 href将等于“ http://residencia-geriatrica-ergos.com/ ”并且this.href将等于“index.html”,因此不会在href中找到。

我的建议:

$(window).load(function() {
  var href = location.href.toLowerCase();
  switch(href):
     case 'http://residencia-geriatrica-ergos.com/':
       $('a[href="index.html"]').prepend('<span><i class="icon-home"></i></span>'); //append active icon
       $('li:not(.active) a').prepend('<i class="icon-double-angle-right"></i>'); //append standard icons
     break;
     case 'http://residencia-geriatrica-ergos.com/index.html':
       $('a[href="index.html"]').prepend('<span><i class="icon-home"></i></span>');
       $('li:not(.active) a').prepend('<i class="icon-double-angle-right"></i>'); //append standard icons
     break;
     case 'http://residencia-geriatrica-ergos.com/servi.html':
       $('a[href="servi.html"]').prepend('<span><i class="icon-home"></i></span>');
       $('li:not(.active) a').prepend('<i class="icon-double-angle-right"></i>'); //append standard icons
     break;
   //add other 
于 2013-06-19T11:45:25.103 回答