Как я могу свернуть вложенный список с помощью jQuery?

У меня есть вложенный список:

<ul>
  <li><a href='#'>stuff</a></li>
  <li><a href='#'>stuff2</a></li>
    <ul>
      <li><a href='#'>stuff3</a></li>
    </ul>
  <li><a href='#'>stuff4</a></li>
</ul>

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

$('UL LI').click(function(){
  $(this).next().slideToggle();
});

... но это, очевидно, вызывает проблему, когда литию не вложили ул. после нее. Существует ли лучший способ сделать это или там способ для меня определить, является ли объектом, возвращенным $ (этот) .next (), УЛ.?

5
задан brendan 28 April 2010 в 15:31
поделиться

3 ответа

if($(this).next().is("ul")) {

}

Должно сработать. См .: http://api.jquery.com/is/

8
ответ дан 18 December 2019 в 11:54
поделиться

может быть просто $ (this) .next ("ul"). SlideUp ()

1
ответ дан 18 December 2019 в 11:54
поделиться
$('LI').toggle(function() {
    $(this).children('ul').slideUp();
},
function() {
    $(this).children('ul').slideDown();
});

Предполагается, что вы имеете в виду UL, указанный под LI, по которому щелкнули. Если вы хотите, чтобы конкретный UL срывался всякий раз, когда щелкают любой LI, вам, возможно, придется написать что-то с несколькими дополнительными проверками.

6
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: