У меня есть вложенный список:
<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 (), УЛ.?
if($(this).next().is("ul")) {
}
Должно сработать. См .: http://api.jquery.com/is/
$('LI').toggle(function() {
$(this).children('ul').slideUp();
},
function() {
$(this).children('ul').slideDown();
});
Предполагается, что вы имеете в виду UL, указанный под LI, по которому щелкнули. Если вы хотите, чтобы конкретный UL срывался всякий раз, когда щелкают любой LI, вам, возможно, придется написать что-то с несколькими дополнительными проверками.