2016-01-15 4 views
3

У меня есть функция переключения, как это:проблема с toggle- переходит к началу страницы при нажатии

$('ul.internal-nav-list li ').on('click', function() { 
     $(this).find('.internal-sub-list li ').toggle(); 

Проблема в том, что при нажатии кнопки для переключения в подменю страницы перескакивает к вершине. Поэтому я попытался использовать

$('ul.internal-nav-list li ').on('click', function (e) { 
     $(this).find('.internal-sub-list li ').toggle(); 
      e.preventDefault(); 

Какая проблема устранена, однако ссылки подменю не работают. Кто-нибудь знает об обходном пути?

Update

это HTML-

<ul class="internal-nav-list"> 
         <li><a href="#">applications</a> 
          <ul class="internal-sub-list"> 
           <li><a href="../sos.aspx">Structures</a></li> 
           <li><a href="../tanks.aspx">Containment Areas</a></li> 
           <li><a href="../pumps.aspx">Pumps</a></li> 
           <li><a href="../hex.aspx">Heat Exchangers</a></li> 
          </ul> 
         </li> 

+0

А что ваш HTML? – epascarello

ответ

2

Там может быть лучше, но без HTML это труднее, чтобы помочь вам. Но вы можете проверить, чтобы убедиться, что он не является якорь быть щелкнули

if (!$(e.target).is(".internal-sub-list a")) { 
    e.preventDefault(); 
} 
+0

Обновлен вопрос о включении html –

2

Добавить e.preventDefault() на анкерных связях, которые не должны быть активной ссылкой (я верю в вашем литии у вас есть также элемент href = "#").

В качестве глобального исправления вы можете иметь что-то вроде:

$('a[href="#"]').on('click', function(e) { 
 
    e.preventDefault(); 
 
});

+0

no a href = "#", обновлен вопрос с помощью html –

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