2014-02-10 3 views
1

У меня есть сложное подменю, созданное виджетами Wordpress. Это 4 уровня в глубину.Остановить slidetoggle в третьем подменю и перейти по ссылке

Я показываю только первый уровень. Затем со следующим кодом я отключу гиперссылку и сделаю подменю.

jQuery(function() { 
     jQuery('.widget_wpdm_categories_widget ul > li > a').click(function() {    
     jQuery(this).next('ul').slideToggle(); 
     return false; 
     }) 
    }); 

Моя проблема в том, что я хочу только потратить дважды. Так что-то вроде:
Пункт меню
- Подменю 1
- Подменю 2

Теперь, когда вы нажимаете на ссылку в подменю 2, я не хочу, чтобы развернуть его. Я хочу просто перейти по ссылке.

Как это реализовать? Мой HTML выглядит следующим образом:

<li class="cat-item cat-item-41"><a href="http://wptest.alcadis.nl/downloads/metageek/" title="Alle berichten opgeslagen onder Metageek bekijken">Metageek</a> 
    <ul class="children" style="display: block;"> 
     <li class="cat-item cat-item-265"><a href="http://wptest.alcadis.nl/downloads/chanalyzer-metageek/" title="Alle berichten opgeslagen onder Chanalyzer bekijken">Chanalyzer</a> 
      <ul class="children" style="display: block;"> 
       <li class="cat-item cat-item-266"><a href="http://wptest.alcadis.nl/downloads/pro/" title="Alle berichten opgeslagen onder Pro bekijken">Pro</a> 
         <ul class="children" style="display: block;"> 
          <li class="cat-item cat-item-77"><a href="http://wptest.alcadis.nl/downloads/software/" title="Alle berichten opgeslagen onder Software bekijken">Software</a> 
          </li> 
         </ul> 
       </li> 
      </ul> 
     </li> 
    </ul> 
</li> 
+0

Иногда, когда вы попадаете в такие проблемы, что вам нужно сделать шаг назад и подумать об удобстве использования. Навигационное меню 4 уровня глубины может быть подавляющим для пользователя, и они будут запутаны/потеряны. Я также понимаю, что у вас, вероятно, нет контроля над дизайном, и вы просто пытаетесь заставить свой код работать lol – zgood

ответ

0

Один простой способ это просто посчитать родителю <ul> элементы ссылки вы нажимаете на с:

if ($(this).parents('ul').length < 3) 

jsFiddle example

jQuery('.widget_wpdm_categories_widget ul > li > a').click(function() { 
    if ($(this).parents('ul').length < 3) { 
     jQuery(this).next('ul').slideToggle(); 
     return false; 
    } 
}) 
+0

Спасибо, это решило мою проблему отлично. Не знал, что это возможно в jQuery. – stefanluk

+0

Отлично, рад, что я мог бы помочь. – j08691

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