代码之家  ›  专栏  ›  技术社区  ›  Nikita Tonkoskur

jQuery使锚定标记不起作用

  •  -2
  • Nikita Tonkoskur  · 技术社区  · 8 年前

    我正在努力改变 li 在导航栏上标记的类 active 当我在那一页的时候。 jQuery更改 锂 上课 忙碌的 但是 <a> 里面停止工作。 当我禁用js文件时,锚定标记开始正常工作。使用Django 2.0.6。

    js文件:

    (function($) {
      $(document).ready(function() {
         "use strict";
    
         $('ul.navbar-nav > li').click(function(e) {
           e.preventDefault();
           $('ul.navbar-nav > li').removeClass('active');
           $(this).addClass('active');
         });
      });
    
    })(jQuery); // End of use strict
    

    导航栏:

      <nav class="navbar fixed-top navbar-expand-sm navbar-light" id="mainNav" style="background-color: #ffffff;">
      <a class="navbar-brand js-scroll-trigger" href="#page-top">NT Photography</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNav">
        <ul class="navbar-nav">
          <li class="nav-item active">
            <a class="nav-link" href="{% url 'home' %}">portfolio<span class="sr-only">(current)</span></a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="{% url 'pictures' %}">blog</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="{% url 'about' %}">about</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="{% url 'contact' %}">contact</a>
          </li>
        </ul>
      </div>
    </nav>
    

    我怎样才能做到这一点?

    2 回复  |  直到 8 年前
        1
  •  0
  •   Kristian Roebuck    8 年前

    去除 e.preventDefault() 不过,为了让这项活动顺利进行,它的方式是这样的。

        2
  •  0
  •   Ahmed Numaan    8 年前

    e.preventDefault() 代码中的函数是防止列表项及其子元素上的单击事件执行,这就是为什么 <a> 里面的元素 <li> 标签不起作用。因此移除 e、 预防默认值() 在你的代码中将最终解决你的问题。