timex: hilfe bei fehlender abfrage

moin,

ich habe auf der seite < http://www.projektwerkstatt-wagner.de/temp/template-12.html> ein menue- und/oder explorer-system gebastelt, dass bis auf die folgende funktion in ordnung ist.

wenn ich einen menuepunkt oeffne und im baum weitergehe, kann ich den eltern-knoten nicht schliessen.

ich weiss, dass da eine letze abfrage fehlt, bin aber bislang gescheitert. vielleicht kann mir da jmd. helfen.

danke & gruesse, timex.

das betreffende js ...

flag = "show";
iconOn = "ic_table_open.gif"; // Icon fuer aufklappbaren Menuepunkt
iconOff = "ic_table_close.gif"; // Icon fuer schliessbaren Menuepunkt
ausgeklappt = 0;

// Oeffne bzw. schliesse die Listen; Suche das img und tausche es aus ...

function displayElement(x,y) {
 nodeObj.style.display = x;
 if( (window.clipboardData) && (document.compatMode) || (window.clipboardData) ) { // Internet Explorer
  nodeObj.parentNode.firstChild.firstChild.src = y;
 } else { // Opera, Mozilla und Netscape
  nodeObj.previousSibling.previousSibling.firstChild.firstChild.src = y;
 }
}

function toggleView(elm) {
 if (document.getElementById) {

nodeObj = document.getElementById(elm)

if (ausgeklappt != elm && flag == "hide") {
   displayElement('list-item', iconOff);
   flag = "hide";
   ausgeklappt = elm;

} else if (flag == "show") {
   displayElement('list-item', iconOff);
   flag = "hide";
   ausgeklappt = elm;

} else if (flag == "hide") {
   displayElement('none', iconOn);
   flag = "show";
   ausgeklappt = elm;
  }
 }
}

  1. Moin timex,

    ich habe auf der seite http://www.projektwerkstatt-wagner.de/temp/template-12.html ein menue- und/oder explorer-system gebastelt, dass bis auf die folgende funktion in ordnung ist.

    wenn ich einen menuepunkt oeffne und im baum weitergehe, kann ich den eltern-knoten nicht schliessen.

    ich weiss, dass da eine letze abfrage fehlt, bin aber bislang gescheitert. vielleicht kann mir da jmd. helfen.

    Okay; ich gestehe, ich habe mir Dein Script nicht genau betrachtet, bin aber der Meinung, es liegt ein konzeptioneller Fehler vor.
    Per Click wird eine Flag gesetzt, die das Einklappen dann auch wieder verhindert, wenn der Click unerwartet auf höhere Menüpunkte in der Menüstruktur fällt (also auf Elternelemente oder deren "Geschwistern"). Erfolgt der Click ein zweites mal auf den Menüpunkt, so funktioniert es (mutmaßlich hat das nun auch eine Flag).

    Mein Ausweg wäre den Click auf ein Element/Menükunkt aufzufangen und bis zum obersten Element, das die Menüpunkte in gänze enthält, zurückzuverfolgen, rekursiv alle Kinder und Kindeskinder zu durchlaufen und auch Übereinstimmung .style.display=='none' zu prüfen und zu prüfen, ob der Click auf ein Element erfolgte, der in direkter Linie ein parentNode vom gerade geöffneten (.style.dixplay=='block') Menüpunkt ist.

    Gruß aus Berlin!
    eddi

    --
    wahsaga (?t=90932&m=546295)
    > vielleicht könnte man für heteros eine "strict"-DTD zu grunde legen [...oder...] eine darauf anwendbare CSS-eigenschaft 'sex'
    In dem Sinne: Ein -Hoch- auf die Liebe zwischen Menschen! ;)