einzelnes Element aus Knoten ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • einzelnes Element aus Knoten ausgeben

    Hi ihr alle..

    Ich hole mir mittels einer rekursiven Funktion alle Elemente einer verschachtelten Tabelle und versehe jedes <td> Element mit einer eindeutigen ID und einem onclick-EventHandler.

    Jedoch gibt es dabei ein Problem:

    Wenn ich folgende Tabelle habe (Jeder Kasten ist eine Tabelle. Also in diesem Fall: Tabelle in Tabelle in Tabelle):

    Code:
     _______ T1
    |  ___  T2|
    | |  _  |    |
    | | |_|T3  |
    | |      |    |
    | |___|    |
    |_______|
    Wenn ich auf die innerste Tabelle klicke, dann gibt er mir auch als erstes die ID der innersten Tabelle (T3) aus. Anschließend (ohne Schleife oder sowas) gibt er mir jedoch auch die ID's der Hauptknoten aus, also von Tabelle 1 (T2) und 2 (T1) Das ist natürlich nicht das Ergebnis, welches ich mir wünsche. Es soll nur die ID von dem Element ausgegeben werden, welches ich angeklickt habe.


    jetzt noch ein wenig CODE (habs einfach mal gekürzt):

    Code:
                if(knoten.nodeName == 'TD'){
                  zahl =  ZufallszahlGenerieren(0, 9999999);
                  knoten.attributes['id'].value = zahl;
    
                  knoten.onmouseover = function(){
                    knoten.style.borderTop    = '#FF0000 1px solid';
                    knoten.style.borderBottom = '#FF0000 1px solid';
                    knoten.style.borderLeft   = '#FF0000 1px solid';
                    knoten.style.borderRight  = '#FF0000 1px solid';
                    };
                  knoten.onmouseout  = function(){
                    knoten.style.borderTop    = '#FF0000 0px solid';
                    knoten.style.borderBottom = '#FF0000 0px solid';
                    knoten.style.borderLeft   = '#FF0000 0px solid';
                    knoten.style.borderRight  = '#FF0000 0px solid';
                    };
    
                  knoten.onclick = function(){
                         alert(document.getElementById(knoten.attributes['id'].value).attributes['id'].value);  // GIBT DIE ID AUS
                         };
                  }

    Ich habe mal eine Beispielausgabe gemacht, wie es aussieht, wenn man in die innerste Tabelle "onmouseovert".


    Wie kann ich verhindern, dass die anderen Elemente nicht ausgewählt werden?

    Viele Grüße

    David
    Angehängte Dateien
    Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

  • #2
    Das kommt daher, dass das onmouseover-Event in der Hierarchie des Dokumentes nach oben durchgereicht wird. Das musst du unterbinden. Dazu musst du dir das Event erstmal an deine Funktion übergeben lassen und kannst dann auf diesem Event die Funktion stopPropagation() aufrufen. Für den Internet Explorer musst du einfach nur window.event.cancleBubble = true setzen.
    hopka.net!

    Kommentar

    Lädt...
    X