jQuery, 抛出新的错误( "Syntax error, unrecognized expression: " + a



我有一个固定的导航,单击导航项并平滑滚动到页面上的各个部分,并向菜单项添加一个活动类。

在本地主机上本地开发时,它运行良好,但现在我已经将站点实时移动,它给出了错误:

Uncaught Error: Syntax error, unrecognized expression: /#about-section

throw new Error("Syntax error, unrecognized expression: " + a)

该网站在网站上进行测试使其在本地主机上工作的代码是:

jQuery(document).ready(function($) {
  var sections = $('section'),
    nav = $('nav'),
    nav_height = nav.outerHeight();
  $(window).on('scroll', function() {
    var cur_pos = $(this).scrollTop();
    
    sections.each(function() {
      var top = $(this).offset().top - nav_height,
        bottom = top + $(this).outerHeight();
      if (cur_pos >= top && cur_pos <= bottom) {
        nav.find('a').removeClass('active');
        sections.removeClass('active');
        $(this).addClass('active');
        nav.find('a[href="#' + $(this).attr('id') + '"]').addClass('active');
      }
    });
  });
  nav.find('a').on('click', function() {
    var $el = $(this),
      id = $el.attr('href');
    $('html, body').animate({
      scrollTop: $(id).offset().top - nav_height
    }, 500);
    return false;
  });
});
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  <ul id="menu-not-landing-main-menu" class="nav navbar-nav navbar-right">
    <li id="menu-item-442" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-442 active active">
      <a href="/#about-section">About</a>
    </li>
    <li id="menu-item-443" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-443 active active">
      <a href="/#speakers-section">Speakers</a>
    </li>
    <li id="menu-item-444" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-444 active active">
      <a href="/#mini-zeminars-section">Mini Zeminars</a>
    </li>
  </ul>
</div>

谁能帮忙?

从所有锚标记中删除斜杠/ href ,例如

    <li id="menu-item-442" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-442 active active">
      <a href="#about-section">About</a>
    </li>
    <li id="menu-item-443" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-443 active active">
      <a href="#speakers-section">Speakers</a>
    </li>
    <li id="menu-item-444" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-444 active active">
      <a href="#mini-zeminars-section">Mini Zeminars</a>
    </li>

那你就好了;)

id 不能以 / 开头,所以把它切出来:

var **target** = *id.slice(1)*;

然后

scrollTop: $(**target**).offset().top - nav_height

相关内容

最新更新