Alle Ebenen mit "navi" im namen ausblenden
Sebastian Lorenz
- javascript
0 Gunnar Bittersmann0 chr..itz0 wahsaga0 Cybaer
Hallo,
hier hat mir ein Designer wieder so ein Ei ins Nest gelegt. Und nun soll das ganze natürlich auch funktionieren...
Mein Problem:
Der Besucher fähr in der Navigation über einen Eintrag, dann über einen Untereintrag etc. 3 Ebenen insgesamt.
Dabei werden die Ebenen navi1, navi1sub1, navi1sub1sub1 eingeblendet.
Ich habe nun eine Funktion, die Ausfehührt wird, wenn die Maus einige Sekunden über keiner dieser Ebenen war.
Ich hätte nun gerne eine Funktion, die folgendes macht:
1. Finde alle div-Objekte mit "navi" im .name
2. Schleife für jedes Element
3. Ist sichtbar ?
4. Wenn ja: element.hide();
Ich habe nun leider keine Ahnung, wie ich Zugriff auf die Elemente habe. Ich könnte sicher etwas furchtbar kompliziertes machen, und einfach ALLE Ebenen ausblenden. Besser wäre es aber (allein um der sauberen Programmierung willen), die Liste der Ebenen zur Laufzeit zu erzeugen.
Es ist schon schlimm genug, die Positionen etc. mit PHP zu erzeugen. Wenn da später ein mal 200 Ebenen sind, wird es sicher sehr langsam, wenn ich eine Liste aller Ebenen in einem Array vordefiniere.
Für Tipps oder Links zum "inpirieren" bedanke ich mich im voraus!
Bye,
Sebastian
Hi Sebastian,
hier hat mir ein Designer wieder so ein Ei ins Nest gelegt. Und nun soll das ganze natürlich auch funktionieren...
Aha, weiß der Designer auch, dass eine Navigation immer auch ohne JavaScript funktionieren muss?
- Finde alle div-Objekte […]
document.getElementsByTagName()
[…] mit "navi" im .name
Live long and prosper,
Gunnar
Hi,
mal so als Alternative:
Wäre es nicht einfacher wenn Du Dir von vorne herein merkst was jetzt gerade sichbar ist?!
Wenn die Zeit rum ist setzt Du die gemerkten Divs dann wieder auf hidden, ggf. Änderungen überschreiben und gut ist bzw. sollte es ( vorraus gesetzt ich habe Dein Problem richtig verstanden) sein.
Gruß Chris
hi,
Ich hätte nun gerne eine Funktion, die folgendes macht:
- Finde alle div-Objekte mit "navi" im .name
da div in HTML gar kein name-attribut hat, redest du vermutlich von einer dynamisch per javascript zugewiesenen eigenschaft divreferenz.name ...?
gruß,
wahsaga
Hi,
Für Tipps oder Links zum "inpirieren" bedanke ich mich im voraus!
Aber wie bereits gesagt: Div hat kein NAME-Attribut. Da dies aber in HTML Verwendung findet, kannst Du es nicht ohne Probleme verwenden. Nimm also ID oder ein eigenes Attribut, das HTML nicht kennt, z.B. <div myname="navi...". Dann sähe der Fuunktionsaufruf so aus:
toggle("fold","div:myname","navi"); // Blendet alle DIVs aus, deren Attributwert von myname mit navi beginnt
Gruß, Cybaer