Ich habe eine ul-Liste, die, wenn ich auf ein Element klicken schaltet die anderen Elemente im Inneren hat:Wie kann ich eine geschachtelte ul Liste zusammenklappen?
<ul>
<li><a href "#">Hello World</a>
<ul>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
<ul>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
</li>
</ul>
</li>
<li><a href "#">Hello World</a>
</li>
</ul>
</li>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
</li>
<li><a href "#">Hello World</a>
</li>
</ul>
Dies ist das Skript:
$('li a').click(function (e) {
e.preventDefault();
var ullist = $(this).parent().children('ul:first');
ullist.slideToggle();
});
Ich würde das gerne Beim Seitenladen werden alle "Ordner" geschlossen.
Ich habe versucht, es so zu tun:
$(window).load(function(){
var ullist = $('li a').parent().children('ul:first');
ullist.hide();
$('li a').click(function (e) {
e.preventDefault();
var ullist = $(this).parent().children('ul:first');
ullist.slideToggle();
});
});
aber dann nur die Haupt „Ordner“ geschlossen ist, und wenn ich darauf klicken, werden alle anderen Ordner geöffnet sind.
ich das Ergebnis haben! "Var ullist = $ ('li a'). Parent(). Children ('ul: first');' in 'var ullist = $ ('li a'). Parent(). Children ('ul '); ' – Jarla
Aber das Problem mit meiner Lösung, alle Ordner und Inhalt wird für eine Sekunde vor dem Verstecken gespült. Kann dies verhindert werden? – Jarla
Wenn Ihre Antwort gelöst ist, beantworten Sie Ihre eigene Frage und markieren Sie sie als Gelöst. In Bezug auf deinen letzten Kommentar, wenn du möchtest, dass sie eine Sekunde lang "flush" vor dem Ausblenden verhindern, warum sollte man dann nicht die CSS-Eigenschaft für diese "ul" als versteckt setzen? Auf diese Weise werden sie standardmäßig ausgeblendet und haben weiterhin die Funktionalität, die Sie geschrieben haben. – Unapedra