Frage zu einem Tutorial aus dem internen Javascript-Tutorial-Bereich

Tobi_T

Grünschnabel
Tutorial Link
( tutorials.de/tutorials24983.htm )
dies ist der Tutorial Link auf den sich meine Frage bezieht.

( Anmerkung: Meine Wissen bzgl. Javascript ist eher mau, daher habe ich diverse Begriffe bzgl. dieses Themas in Anführungszeichen gesetz )
//edit: gesetzt

Über den Befehl "onClick" in Verbindung mit mit der "function show(divid) { ... }" werden ja dann die "Sub-Links" quasi "sichtbar" gemacht.

Um graphisch eine bessere Wirkung zu erzielen habe ich nun das Ganze mit folgendem Code ergänzt:

im JS-Script:
Code:
function hide(divid) {
d=document;
d.getElementById("nav_layer1").style.display="inline";
d.getElementById("nav_layer2").style.display="inline";
d.getElementById("nav_layer3").style.display="inline";

d.getElementById(divid).style.display="none";
}

im HTML-A-Body:
Code:
onMouseOver="show('nav_layer1')" onMouseOut="hide('nav_layer1')"
onMouseOver="show('nav_layer2')" onMouseOut="hide('nav_layer2')"
etc

Allerdings scheint es so als hätte ich einen Denkfehler gemacht über welchen ich mir nun seit 2 Stunden den Kopf zerbreche. ( wie gesagt meine JS-Kenntnisse sind eher mau )


Wäre super wenn mir kurz jemand den nötigen "Denkanstoss" geben könnte.

Vielen Dank
MFG Tobi
 
Wo genau besteht das Problem.
Momentan macht die Funktion zuerst alle 3 Layer sichtbar, und versteckt dann den einen, dessen ID ihm übergeben wurde.

Wenn du etwas anderes vorhast, müsstest du sagen, was du vorhast;)
 
1. Habe den ersten noch viel schlimmeren Fehler selbst gefunden!

wenn ich onMouseOver und onMouseOut im selben Tag stehen habe werde ich niemals die Sub-Navigation auch nur erreichen!

grausamer Denkfehler!

naja mit einem "Div-Tag" und einem bisschen rumprobiere wird dieses Problem sicher zu lösen sein.

Allerdings, womit ich zu
2.
komme, soll natürlich jeweils nur eine Sub-Navigation gleichzeitig visuell sichtbar gemacht werden und nicht gleich alle 3, wie du vollkommen richtig erkannt hast.

und beim
// Korrektur:
verlassen meines "Div.onMouseOut-Bereichs" auch wieder geschlossen werden.

Ich vermute deinem Post zu Folge, dass meine Hide Funktion dementsrechend doch um einiges komplexer werden wird als ich zunächst angenommen hatte.
Mist!

wäre super wenn du mir einen Denkanstoss in die richtige Richtung geben könntest. Vielen Dank!

P.S: ich habe noch kurz ein HTML-Template hoch geladen um das ganze besser vorstellbar zu machen.

http://www.n1-gaming.de/wayne/problem/1.html
http://www.n1-gaming.de/wayne/problem/2.html
http://www.n1-gaming.de/wayne/problem/problem.txt

Mfg
 
Bei genauer Betrachtung wirst du merken, dass du die jeweils anderen Layer garnicht verstecken musst... das ist ja dort schon beim zuvor geschehenen mouseout passiert.

Problem:Du rufst die Funktionen im Link auf.. diesen verlässt du aber, sobald du auf ein Submenupunkt kommst....sie verschwinden sofort.

Lösung:Packe jeden Menupunkt(incl.Submenu)in ein <div>. Dort rufst du dann auch die Funktionen auf.
Die Submenues verpacke nochmals in ein eigenes <div style="display:none">.

Jetzt verstecke oder zeige dieses eine <div> mit den Submenues(die anderen brauchen da nicht weiter interessieren)

Ich vermute deinem Post zu Folge, dass meine Hide Funktion dementsrechend doch um einiges komplexer werden wird als ich zunächst angenommen hatte.
Mist!
Ganz im Gegenteil.... sie wird einfacher....im Grunde genommen lässt sich das Ganze mit einer einzigen Zeile Code erledigen:)
 
ein neuer Tag, eine neue Perspektive und schon funktioniert es!
Vielen Dank @ Fatalus!
(wenn man für dich irgendwo voten kann, gern)

Mfg
 

Neue Beiträge

Zurück