jQuery erweitern/reduzieren Sie hierarchische Tabelle Zeile

Ich bin auf der Suche nach einer effizienten Möglichkeit zum erweitern/reduzieren Sie hierarchische Tabelle Zeilen mit jQuery. Das problem ist, dass das erweitern und reduzieren, die Funktionalität unterscheidet sich.

  • Zunächst nur die Zeilen mit Klasse level_0 werden zeigen, alle anderen Zeilen werden ausgeblendet.
  • erweitern Sie sollte nur zeigen das nächsten Niveau, sodass durch klicken auf die Zeile id=10 sollten nur Zeilen mit id=11 und id=14 sichtbar.
  • Zusammenbruch auf der anderen Seite, sollte der Zusammenbruch alle aufeinander folgende Zeilen mit einem tieferen Niveau als das aktuelle. Zum Beispiel, indem Sie Zusammenbruch in der Zeile id=10 sollten ausgeblendet werden die Zeilen mit den ids 11, 12, 13, 14, wenn Sie sichtbar sind.

Die Daten der Tabelle sieht wie folgt aus:

<table id="mytable">
    <tr class="level_0" id="10">...</td>
    <tr class="level_1 parent_10" id="11">...</td>
    <tr class="level_2 parent_11" id="12">...</td>
    <tr class="level_2 parent_11" id="13">...</td>
    <tr class="level_1 parent_10" id="14">...</td>
    <tr class="level_0" id="15">...</td>
</table>

Meine nicht funktionierende Lösung:

$('#mytable tr').live('click', function() {
  var toggleClass = 'parent_' + $(this).attr('id');
  $(this).nextAll('tr').each(function() {
    if ($(this).is('.'+toggleClass)) {
      $(this).toggleClass("showme");
    }
  });
});

Das problem ist, dass es nur klappt die nächste Ebene von Zeilen. Sichtbar und tiefere Zeilen unterhalb der Zeile geklickt werden weiterhin angezeigt.


Kann mir jemand ein paar Hinweise, wie ich dies tun könnte in einer effizienten Weise? Der HTML-code kann angepasst werden, wenn nötig.

Vielen Dank für alle Hinweise.

InformationsquelleAutor Lukas | 2010-08-24
Schreibe einen Kommentar