根据不使用主URL的URL添加类

时间:2014-10-23 08:51:13

标签: jquery class

我有以下代码,其中脚本检查li链接,如果在url地址中找到该链接,则添加一个类,子ul将扩展。

这适用于子页面,但在网站的根目录上,所有li的节目都向下滑动,就好像未检测到主链接中的url一样。我认为它与正斜杠有关,因为主页没有它。

有什么想法吗?

$(function(){

var url = window.location.pathname, 
    urlRegExp = new RegExp(url.replace(/\/$/,'') + "$"); // create regexp to match current url pathname and remove trailing slash if present as it could collide with the link in navigation in case trailing slash wasn't present there
    // now grab every link from the navigation

    $('#cssmenu > ul > li > a').each(function(){
        // and test its normalized href against the url pathname regexp
        if(urlRegExp.test(this.href.replace(/\/$/,''))){
          $('#cssmenu li').removeClass('active');
      $(this).children('li').addClass('active');    
      var checkElement = $(this).next();
      if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
        $(this).children('li').addClass('active');
        checkElement.slideDown('normal');
      }

      if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
        $('#cssmenu ul ul:visible').slideUp(50);
        checkElement.slideDown(800);
      }
      if($(this).children('li').find('ul').children().length ==0) {
        return true;
      } else {
        return false;   
      }     
                }
            });



    });

1 个答案:

答案 0 :(得分:0)

如果urlRegExp为空,那么早期返回怎么样?它应该在你的根路径上。

假设您不希望在您的根页面上发生任何其他事情,那么

if(urlRegExp.length == 0){ 
  //root page 
} else { 
  //other page (what you are doing now)
}