javascript - Bootstrap 导航栏菜单项 li a 在特定页面中更改事件类

标签 javascript html css

使用纯 CSS 和一些 javascript,我如何设法删除类“active”并将其添加到我的 li 元素中?我尝试在 javascript 中使用“onclick”函数。它会更改元素的颜色,但不会将我重定向到所选元素的链接。

<div class="main_navs">
    <ul class="nav navbar-nav">
        <li><a href="index.php" class="main_navmenu active">Home</a></li>
        <li><a href="product.php" class="main_navmenu">Products</a></li>
        <li><a href="services.php" class="main_navmenu">Services</a></li>
        <li><a href="account.php"> Wishlist</a></li>
        <li><a href="login.php"> Register</a></li>
        <li><a href="gift_card.php"> Gift Card</a></li>
        <li><a href="cart.php" class="main_navmenu"
           <i class="fa fa-shopping-cart"></i> Cart <span class="badge">0</span></a></li>
    </ul>
</div>

 <script type="text/javascript">
     $('#main_menu_items li a').on('click', function(){
          $('li a.active').removeClass('active');
          $(this).addClass('active');
     });
 </script>

CSS:

     .main_navs ul li a.active{
          background: rgba(255,255,255,0.2);
          color: #333;
     }
     .main_navs ul li a{
          background: rgba(0,0,0,1);
          color: #fff;
     }

最佳答案

我想这应该能帮到你。它应该在页面加载时将类 active 添加到菜单中匹配的 anchor 。

<script>
$(function() {
    var url = window.location.pathname,
        urlRegExp = new RegExp(url.replace(/\/$/, '') + "$");
    $('.main_navs a').each(function() {
        if (urlRegExp.test(this.href.replace(/\/$/, ''))) {
            $(this).addClass('active');
        }
    });
});
</script>

关于javascript - Bootstrap 导航栏菜单项 li a 在特定页面中更改事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31180730/

相关文章:

javascript - 每次单击按钮时使 div 向一个方向移动

javascript - [HTML][Javascript][Canvas] 无法使多边形函数工作

html - 如何限制 CSS 网格的行大小?

javascript - 禁用多个 HTML 按钮

javascript - 从 JavaScript 中的嵌套对象数组中提取值

html - 如何使我的网站宽度完全适合 iphone 5?

html - 如何在 bootstrap3 中创建响应式按钮?

css - 如何添加分隔两列的垂直线?

javascript - 网页上的 3D 透视文本

html - 为什么当我尝试用一​​种带有重音符号的不同语言拼写一个单词时它会自举,但它会显得很奇怪