wie verwenden Sie next (weiter), um die nächsten ul in jquery?
ich habe ein einfaches Menü etwas wie dieses:
<ul id="navigation">
<li id="m_li">
<div><span>+</span><a href="#" >myself</a></div>
<ul class="test" id="x_ul">
<li id="li">
<a href="#" >Pictures</a>
</li>
<li id="li">
<a href="#" >Audio</a>
</li>
</ul>
</li>
<li id="profile_modeling_li">
<div><span>+</span><a href="#" >friend</a></div>
<ul class="test" id="y_ul">
<li id="li">
<a href="#" >Pictures</a>
</li>
<li id="li">
<a href="#" >Video</a>
</li>
</ul>
</li>
</ul>
dann nutze ich jquery so, wenn ich auf den +
Zeichen der ul-Folien nach unten:
$("#navigation > li > div > span").click(function(){
if(false == $(this).next('ul').is(':visible')) {
$('#accordion ul').slideUp(300);
}
$(this).next('ul').slideToggle(300);
});
das Problem ist, dass $(this).next('ul')
scheint nicht zu gern die nächste ul
irgendwelche Ideen, was ich falsch mache?
- Könnten Sie
$(this).find('ul')
- Nein, das können Sie nicht.
find
schaut in die Elemente Nachkommen, während in diesem Fall dieul
ist der Bruder des Elements parent.
InformationsquelleAutor Patrioticcow | 2012-04-24
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden
statt
und, natürlich, Sie können gehen einen Selektor (einfacher oder komplexer) identifiziert, die das gewünschte element als argument:
.next /.prev
traverse durch Geschwister und ul ist kein Kinder der span. Man sollte sich wohl finden, am nächstenli
und finden.test
..next()
und.prev()
traverse durch Geschwister, nicht die Kinder.Konvertieren
zu
Können Sie hier sehen http://jsfiddle.net/PYqS2/