2015-04-28 4 views
2

мое выпадающее меню с бутстрапами работает, но только с внутренними ссылками. я хочу работать с внешними ссылкамиbootstrap выпадающее меню внешняя ссылка

www.speleobox.be/test

Это мой код:

<!-- BEGIN NAVIGATION --> 
<ul class="nav navbar-nav"> 
    <li class="dropdown"> 
     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Huur uw... <span class="caret"></span></a> 
     <ul class="dropdown-menu" role="menu"> 
      <li><a href="http://www.speleobox.be">Speleobox</a></li> 
      <li><a href="http://www.sumopak.be">Sumopakken</a></li> 
     </ul> 
    </li> 
    <li><a href="#experience">Speleobox</a></li> 
    <li><a href="#pricing-tables">Prijzen</a></li> 
    <li><a href="#contact-us">contact</a></li> 
</ul> 
<!-- END NAVIGATION --> 

ответ

0

Как я вижу, у вас есть собственный код, который прокручивает в какой-то якорь в код. Таким образом, это предотвращает события onclick по умолчанию даже для внешних ссылок.

//smooth scroll to href value 
jQuery(".tabs-btn ul li a, .navbar-nav li a, .navbar-brand").click(function(event){ 
    event.preventDefault(); 
    //calculate destination place 
    var dest=0; 
    if($(this.hash).offset().top > $(document).height()-$(window).height()){ 
      dest=$(document).height()-$(window).height(); 
    }else{ 
      dest=$(this.hash).offset().top; 
    } 
    //go to destination 
    jQuery('html,body').animate({scrollTop:dest}, 1000,'swing'); 
}); 

Также есть ошибка в коде, который вы можете увидеть в консоли разработчика

Cannot read property 'top' of undefined 

Я предлагаю удаление этого кода и поменять его с этим один https://css-tricks.com/snippets/jquery/smooth-scrolling/

jQuery(function() { 
    jQuery('a[href*=#]:not([href=#])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = jQuery(this.hash); 
     target = target.length ? target : jQuery('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     jQuery('html,body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
    }); 
}); 

Это функции отлично работают, я использовал кучу раз.

+0

спасибо большое! –

Смежные вопросы