Travesieren gehört zum grundlegenden Handwerkszeug, wenn man fortgeschrittene Animationen mittels jQuery durchführen möchte. Hier ein kleine Anleitung zum Auffinden bestimmter Elemente.
Was passiert hier? Basis ist diese HTML Struktur:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <div id="someParent" style="border: 1px dotted #ccc">Parent <div> Child1 </div> <div class="move"> Child2 </div> <div> Child3 </div> <div class="move not"> Child4 </div> </div> <div id="someWrapper"> <a id="testone" href="#">Move all</a> <a id="testtwo" href="#">Move filtered</a> </div> |
Folgender Javascript-Code führt die Animation aus. Ausgehend von dem Link wird mit den Methoden parent das div “someWrapper” selektiert, prev wählt das vorige Element mit der id “someParent” und schlussendlich werden mit children alle Elemente innerhalb von “someParent” selektiert.
Die id’s im Beispiel dienen nur der Veranschaulichung. Die zu animierenden Elemente werden ausschließlich über die Struktur des DOM gefunden.
jQuery Code für “Move all”:
1 2 3 4 | jQuery("#testone").click(function () { jQuery(this).parent().prev().children().animate({'paddingLeft':'20px'},200); return false; }); |
Nun zur fortgeschrittenen Variante. Basis dafür sind die jQuery Funktion, filter und not.
jQuery Code für “Move filtered”:
1 2 3 4 | jQuery("#testtwo").click(function () { jQuery(this).parent().prev().children().filter(".move").not(".not").animate({'paddingLeft':'20px'},200); return false; }); |