javascript - 导航栏事件类在 Bootstrap 4 中不起作用

标签 javascript jquery twitter-bootstrap bootstrap-4 dom-events

我正在尝试将事件类添加到导航栏中当前打开的链接。我用谷歌搜索了很多。 Stack Overflow 中有很多与此问题类似的问题和答案,但这些所有答案仅适用于导航栏的哈希类型,例如 href="#",当我有网站时不起作用和页面。我想正确添加事件类(class)。我尝试了很多,但没有找到完美的答案。

这是我的代码:

<nav class="navbar navbar-expand-md navbar-dark sticky-top pt-0 pb-0">
    <div class="container nav_container">
        <a class="navbar-brand" href="<?php echo BASE_URL; ?>">
            <img src="<?php echo BASE_URL; ?>/resources/assets/img/logo/logo_default.png" class="img-fluid foodbox_logo">
        </a>
        <button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#mainNavbar">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="mainNavbar">
          <ul class="navbar-nav ml-auto">
            <li class="nav-item">
              <a class="nav-link active" href="<?php echo BASE_URL; ?>">Home</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="<?php echo BASE_URL; ?>/shop.php">Shop</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="<?php echo BASE_URL; ?>/cart.php">Cart</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="<?php echo BASE_URL; ?>/about-us.php">About Us</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="<?php echo BASE_URL; ?>/contact-us.php">Contact Us</a>
            </li>
          </ul>
        </div>
    </div>
</nav>

JS:

<script>
    $(document).ready(function() {
        $('a.nav-link').on('click', '.nav-item a', function (e) {
            $(this).parent().addClass('active').siblings().removeClass('active');
        });
    });
</script>

有人可以帮我吗?

最佳答案

使用下面的代码片段,并在导航栏中的网址末尾添加 /

   $(document).ready(function() {

   var url = [location.protocol, '//', location.host, location.pathname].join('');  

            $('.nav-item.active').removeClass('active');
            $('.nav-item a[href="' + url  + '"]').parent().addClass('active');
            $(this).parent().addClass('active').siblings().removeClass('active');


    });

关于javascript - 导航栏事件类在 Bootstrap 4 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57956857/

相关文章:

javascript - 我将如何自动化这个红绿灯序列?

javascript - 如何在初始化时将完整日历设置为特定的开始日期和结束日期?

javascript - 带有 'allow-same-origin' 标志错误的 Iframe 沙盒

php - 设置 JQuery 选择不执行任何操作

javascript - JQuery 时间选择器与有序列表项在同一行

javascript - Enzyme/Jest -- 用 DOM 树编写 TDD

javascript - 如何在标准和怪异模式下将 div 放置在视口(viewport)底部?

php - Wordpress:在 TinyMCE iframe 中添加事件

css - Twitter Bootstrap 还是 Zurb Foundation?你喜欢哪个?

javascript - 检查 bootstrap 中的复选框是否被选中