Bootstrap Navbar не рушится с помощью Smooth Scroll Script

Я использую панель навигации Bootstrap на одностраничном веб-сайте, и каждый якорь связан с разделом на странице. Я использую очень простой javascript для плавной прокрутки каждого раздела, однако это каким-то образом противоречит функции сворачивания панели навигации - когда я нажимаю на ссылку, она больше не сворачивается, что раздражает. Сначала я подумал, что это может быть проблема с HTML (решено здесь: Bootstrap Navbar Collapse не закрывается on Click ), но понял, что это проблема JS - есть идеи?

HTML:

<nav class="navbar navbar-default mainbar" role="navigation">
    <div class="navbar-header">
        <button type="button" class="navbar-toggle hvr-bounce-to-bottom collapsed" data-toggle="collapse" data-target="#my-navbar-collapse">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
    </div>

    <div class="collapse navbar-collapse" id="my-navbar-collapse">
      <ul class="nav navbar-nav">
         <li><a data-toggle="collapse" data-target=".navbar-collapse" href="#link1" class="navelement">Link 1</a></li>

         <li><a data-toggle="collapse" data-target=".navbar-collapse" href="#link2" class="navelement">Link 2</a></li>

       </ul>
     </div>
</nav>

ЯВАСКРИПТ:

var corp = $("html, body");
  $(".navelement").click(function() {
    var flag = $.attr(this, "href");
    corp.animate({
        scrollTop: $(schild).offset().top - 60
    }, 1600, function() {
        window.location.hash = flag;
    });
    return false;
});

person Marc    schedule 12.02.2015    source источник
comment
Вы нашли решение этой проблемы?   -  person camdixon    schedule 16.02.2015
comment
сейчас нет, не могу найти...   -  person Marc    schedule 06.03.2015


Ответы (1)


вы можете использовать jQuery: not selector-utility

e.g.

$('a[href*=#]:not([href=#], [data-toggle=collapse])').click(function(){...})

или в вашем примере:

var corp = $("html, body");
  $(".navelement:not([data-toggle=collapse])").click(function() {
    var flag = $.attr(this, "href");
    corp.animate({
        scrollTop: $(schild).offset().top - 60
    }, 1600, function() {
        window.location.hash = flag;
    });
    return false;
});
person corium    schedule 06.03.2015