Popupmenü mit platzierten Grafiken

L-u-z-i-f-e-r

Grünschnabel
Hi Leutz

Ich habe folgendes Problem: Ich möchte (wie so viele andere) ein Menü. ich habe auch schon die Boardsuche ausgiebig befragt und auch augenscheinlich ne ganze Menge gefunden. Doch eine Frage bleibt leider ungeklärt. Ich habe u.a. diese beiden bsps gefunden:

http://www.tutorials.de/tutorials132324.html
http://www.tutorials.de/tutorials24983.html

die sind schon sehr gut, da die Eventhandler hier direkt in den Tags sind, und man sie daher relativ leicht durch andere Tags z.b. für Grafiken austauschen kann.

Nun möchte ich aber, dass direkt rechts neben meinem Hauptpunkt mein 1. Unterpunkt erschein, alle weiteren Unterpunkte dann darunter; der 1. Unterpunkt der 2. Menüunterebene soll dann wieder neben dem Übergeordneten Punkt erscheinen.
Ich habe auch gelesen, dass man sowas mit Dreamweaver machen kann (sofern man die Kenntnisse hat) und genau da hapert es, denn ich benutze fast nur AdobeGoLive, habe also wenig Erfahrung mit dem Dw
 
http://www.tutorials.de/tutorials215197.html

Damit wollte Sven sagen, dass wir nicht der Weihnachtsmann sind, dem die Elfen die Wunschzettelchen der Kinder bringen und der sie dann abarbeitet.

Wir helfen dir gerne wenn du ein konkretes Problem hast oder bei deinen Bemühungen auf einen Fehler stößt, den du dir nicht erklären kannst, aber wir schreiben nicht das Script für dich.

Rein vom Prinzip her bastelst du dein gesamtes Menü erstmal mit HTML und CSS, so als wären allen Unterpunkte ständig sichtbar. Mit JavaScript machst du sie dann über document.getElementById('idDesElements').style.display = 'none' bzw. 'block' in winwm onMouseover, onMouseout oder onclick-Even sichtbar bzw. unsichtbar. Das ist alles, den Rest kannst du mit HTML und CSS machen - du brauchst also nur minimale JavaScript Kenntnisse. Onmouseover Menüs lassen sich sogar nur mit CSS realisieren.
 
ja das verstehe ich, aber ich bin so verzweifelt, weil ich schon seit 14 stunden nach einer lösung suche...... (ich weiß ich sollte mal ne pause machen... )

ok, lange rede kurzer sinn, jetzt hab ich ein konkretes prob: es geht um diesen code:

http://www.tutorials.de/tutorials132324.html

da steht folgendes:
Code:
function menu( mid, mdepht) {       
       if (mstat[mdepht] == undefined) {
           mstat[mdepht] = "";
       }
       if (mstat[mdepht] != "" && mstat[mdepht] != mid) {
           window.document.getElementById(mstat[mdepht]).style.display = "none";
       }
       if (mstat[mdepht] != mid) {
           window.document.getElementById(mid).style.display = "block";
           window.document.getElementById(mid).style.paddingLeft = mdepht * 10;
           mstat[mdepht] = mid;
       } else {
           window.document.getElementById(mid).style.display = "none";
           mstat[mdepht] = "";
       }
   }

da wird nun das Element unsichtbar gemacht, aber nur wenn "mstat[mdepht] != mid" das wiederrum ist aber nur der Fall wenn das Element sowie schon unsichtbar ist!?
 
ok das obenliegende problem habe ich soweit gelöst

nun aber noch was anderes: warum wird diese abfrage nie true?

Code:
if (mstat[mdepht] == 1)

ich habs auch schon mit

Code:
if (parseInt(mstat[mdepht]) == 1)

versucht.....

im prinzip ja eine einfache Abfrage, und theoretisch müsste der Wert ja auch 1 sein, denn den bekommt er ja schon im Funktionsaufruf, und wird dann ja auch nicht verändert........

ps. ich möchte die oben genannte zeile zwischen der 9. und 10. zeile einfügen, also hier:

Code:
if (mstat[mdepht] != mid) { 
        window.document.getElementById(mid).style.display = "block"; 
        	if (parseInt(mstat[mdepht]) == 1) {
            window.document.getElementById(mid).style.paddingLeft = mdepht * 10; 
            }
        mstat[mdepht] = mid;
 
Nö, das ist der Fall, wenn es sichtbar ist - da steht ein ungleich. Am Anfang ist es unsichtbar. Dann wird die funktion per Click aufgerufen und die erste if-Bedingung trifft zu, also wird mstat[mdepht]="" die zweite if-Bedinung trifft damit nicht mehr zu, dafür aber die dritte, die das ganze sichtbar macht und mstat[mdepht]=mid setzt. Beim nächsten mal trifft dann due dritte nicht mehr zu und die else-Anweisungen werden ausgeführt, so dass es bei nächsten Mal wieder zutrifft usw.
 
Ah, ich sehe schon, du warst 3 min schneller als ich.

Zu deinem zweiten Problem: mstat[mdepht] wird nie ==1 weil es immer den Wert von mid mitgekommt und der ist nunmal immer "m1", "m2", "m3" usw.
 
Beim ersten durchlauf existiert mstat[mdepht] nicht und wird deswegen mit
Code:
	if (mstat[mdepht] == undefined) { 
		mstat[mdepht] = ""; 
	}
initialisiert. Fortan hatt es entweder den Wert "" oder den Wert "m1", "m2" usw. mstat[mdepht] ist ja außerhalb der Variablen initialisiert und exisitiert weiter auch nach verschiedenen onclick-Aufrufen.
 
hmm sh%t........ dann funktioniert mein plan nicht.....

du hast sicherlich schon erkannt, was ich vorhatte: ich wollte das nur eine bestimmt menüebene eingeschoben wird, hast du vllt ne idee wie ich das sonst machen könnte?
 
Zuletzt bearbeitet:
Hä? Wieso fragst du dann nicht mid=="m1", =="m2" usw. ab?

:offtopic: Diese komische zensierfunktion hier im Forum nervt.:rolleyes:
 
Zuletzt bearbeitet:
Zurück