jQuery对底部导航进行跳转并高亮显示

这两天弄一个mui的底部菜单,有点费时了,尝试了用vue写,纯js写,还有根据mui的写,还是有些问题和麻烦。直到看了网上的一些例子,才想明白,之前一直是一种点击触发事件才高亮的思维去做,这个虽然可以了,但是页面跳转了就又都没了。网上看明白的例子是:让当前页面地址与导航里的地址做对比,相同就高亮,之前思维太死,一直以点击才触发事件来写,结果问题好几个。接下来上代码

<style>
.active{ color:#D96C00;}/*高亮样式*/
</style>

这里就放菜单部分代码,在针对vue写菜单的时候,是把导航写到data,再循环遍历输出,最终由于购物车的数字角标显示问题而放弃,采用jQuery了

<nav class="mui-bar mui-bar-tab" id="menu">
    <a href="menuTest.html" rel="menuTest.html" class="mui-tab-item"><!-- rel是作对比的-->
        <span class="fa fa-home"></span>
        <span class="mui-tab-label">首页</span>
    </a>
    <a href="service.html" rel="service.html" class="mui-tab-item">
        <span class="mui-icon iconfont icon-shop"></span>
        <span class="mui-tab-label">客服</span>
    </a>
    <a href="shopcart.html" rel="shopcart.html class="mui-tab-item">
        <span class="mui-icon iconfont icon-gouwuche"><span class="mui-badge">5</span></span>
        <span class="mui-tab-label">购物车</span>
    </a>
    <a href="me.html" rel="me.html" class="mui-tab-item">
        <span class="fa fa-user-circle-o"></span>
        <span class="mui-tab-label">我的</span>
    </a>
</nav>

接下来是jQuery语句

var urlstr = location.href;    //获取浏览器的url
  var urlstatus=false;  
  $('#menu a').each(function() {
      if ((urlstr + '/').indexOf($(this).attr('rel')) > -1&&$(this).attr('rel')!='') {
            // 为当前点击的导航加上高亮,其余的移除高亮
            $(this).find('span').addClass('active');
            urlstatus = true;
        } else {
          $(this).removeClass('active');
        }
    });
  if (!urlstatus) {
      $("#menu a span").eq(0).addClass('active'); //默认首页图标高亮
  }

 

posted @ 2019-04-22 22:53  堆栈  阅读(1019)  评论(0编辑  收藏  举报