mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 20:39 Benutzername: Passwort: Auto-Login

Thema: [der richtige weg] dynamisch erzeugte <tr>s ein/ausblenden vom 25.03.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [der richtige weg] dynamisch erzeugte <tr>s ein/ausblenden
Autor Nachricht
veronika
Threadersteller

Dabei seit: 08.08.2005
Ort: Linz
Alter: 39
Geschlecht: Weiblich
Verfasst Di 25.03.2008 10:24
Titel

[der richtige weg] dynamisch erzeugte <tr>s ein/ausble

Antworten mit Zitat Zum Seitenanfang

hallo freunde der blasmusik!

folgendes problem: ich habe eine riesige tabelle (die dynamisch erzeugt wird - es handelt sich um die auflistung von configurationseinstellungen, es muss also rein semantisch wirklich eine tabelle sein).

die tabelle hat tr s, in denen sich ein link befindet, der unter dieser tr elemente anzeigt (einfach nur mit display="" und display="none"). bisher war das so gehandhabt, dass unter einer solchen tr (in einer tr) eine weitere table aufgeht, die wieder beliebig viele trs haben kann, die wiederum tabellen enthalten können, usw.

das problem bei dieser vorgehensweise ist, das bei häufiger verschachtelung die verschatelten tabellen immer weiter nach innen wandern und die daten nicht mehr schön untereinander stehen.

ich hab mir das jetzt so überlegt, dass diese ganze verschachtelung eigentlich nicht sein müsste, und unter einer tr der ersten ebene wird einfach wieder eine tr eingefügt, die laut html nicht verschachtelt ist, aber eine class bekommt, die darauf schließen lässt, dass wir uns in der 2. ebene befinden und die ansicht wird über css verändert.

so weit so gut - sehr viel weniger html, übersichtlicher quellcode und wär ja alles friede freude eierkuchen... wenn da nicht noch das ein- und ausblenden wäre...
wenn ich nun elemente bis in die 3. unterbene sichtbar klicke geht ja alles noch - schließe ich nun aber die oberste ebene, so verschwinden die fake childs in der 2. ebene - die dritte (und alle darunter) sind aber noch sichtbar, da sie ja nicht wirklich verschachtelt sind sondern die baumstruktur nur von den IDs und CLASSen her rührt.

bin ich da generell am holzweg? soll ich doch wieder zig tabellen in einander verschachteln? was ist denn hier schlauer?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht: Männlich
Verfasst Di 25.03.2008 11:44
Titel

Antworten mit Zitat Zum Seitenanfang

Das heisst Ebene 1 weiß, dass unter ihr noch Ebene 2 existiert? Das hieße ja, daß Ebene 2 weiß, dass eine dritte da ist oder? Wenn du mit Javascript durch die Ebenen läufst und schaust ob sie noch Kinder haben müsstest du sie doch iterativ ausblenden können bis du im Blatt deines gefaketen Baums angekommen bist.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
veronika
Threadersteller

Dabei seit: 08.08.2005
Ort: Linz
Alter: 39
Geschlecht: Weiblich
Verfasst Di 25.03.2008 13:23
Titel

Antworten mit Zitat Zum Seitenanfang

ich hab eine toggle funktion, die in jede tr eingefügt wird, die "childs" hat - nur passiert das in pearl, nicht in javascript.
im javascript selbst weiß ich also nicht ob da noch was kommt.. das ist ja das problem.
ich kann mich ja auch nicht mit nextSibling() weiterhangeln, weil ich ja nicht weiß, wann die "verschachtelung" zu ende wäre...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht: Männlich
Verfasst Di 25.03.2008 13:37
Titel

Antworten mit Zitat Zum Seitenanfang

ich glaub ich hab ne idee, muss mal eben was probieren, moment Lächel
  View user's profile Private Nachricht senden
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht: Männlich
Verfasst Di 25.03.2008 14:10
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
<html>
<head>
<script type="text/javascript" language="JavaScript">
function toggleDiv( divID )
{
    var rows = document.getElementById( 'rootTable' ).rows;
    for(var i = 0; i < rows.length; i++)
    {
        if(rows[i].id.indexOf(divID) != -1 && rows[i].id.indexOf(divID) == 0)
        {
            if("none" == document.getElementById( rows[i].id ).style.display)
              document.getElementById( rows[i].id ).style.display = "";
           else
              document.getElementById( rows[i].id ).style.display = "none";
        }
    }     
}
</script>
</head>
<body>

<table id=rootTable border=1>
<tr id=1 onclick="toggleDiv('1-'); return false;">
    <td>ebene1</td>
</tr>
    <tr id=1-1 onclick="toggleDiv('1-1-'); return false;">
        <td>ebene2</td>
    </tr>
        <tr id=1-1-1>
            <td>ebene3</td>
        </tr>
        <tr id=1-1-2>
            <td>ebene3</td>
        </tr>
        <tr id=1-1-3>
            <td>ebene3</td>
        </tr>
    <tr id=1-2>
            <td>ebene2</td>
    </tr>
</table>

</body>
</html>


Wenn du hier die IDs dynamisch aus deinem Pearlscript füllst, müsste das funktionieren. Ist der Aufbau der Nummerierung verständlich? Wenn nicht einfach fragen.

// grad nochn bug entdeckt, moment


Zuletzt bearbeitet von Skyw4lker am Di 25.03.2008 14:16, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
veronika
Threadersteller

Dabei seit: 08.08.2005
Ort: Linz
Alter: 39
Geschlecht: Weiblich
Verfasst Do 03.04.2008 12:29
Titel

Antworten mit Zitat Zum Seitenanfang

hm.. also bei mir haut das nicht hin, bzw besteht genau das gleiche problem damit, dass das ja nicht pseudo-rekursiv ist?
bist du noch aufn grünen zweig gekommen?


Zuletzt bearbeitet von veronika am Do 03.04.2008 12:34, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen FLASH dyn. erzeugte Elemente aus Hauptzeitleiste formatiere
Deutschlandkarte Dynamisch?
Link dynamisch erstellen
DIVs dynamisch anordnen
[html] framehöhe dynamisch?
DIV dynamisch ausdehnen (html)
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.