IE ändert display nicht korrekt
Bastian
- javascript
0 Martin Hölter0 Bastian0 Martin Hölter0 Struppi
Hallo zusammen
Ich hab da ein "kleines" Problem... und zwar habe ich ein Menü bestehend aus im Moment zwei div-Elementen, in dem einen ist das Hauptmenü in dem anderen ein Untermenü. Per Click auf den Button "Clan" sollte das Hauptmenü ausgeblendet und das Untermenü eingeblendet werden.
Das ganze ist so realisiert:
Im Header:
function submenue(from,to)
{
document.getElementById(from).style.display= "none";
document.getElementById(to).style.display = "inline";
}
Im Link "Clan":
onClick="submenue('hauptmenue','clanmenue');"
Mit Firefox und Safari klappt alles wie es sollte, nur im Internet Explorer nicht. Dieser zeigt für einen Bruchteil einer Sekunde das Untermenü an und blendet dann sofort wieder das Hauptmenü ein, seht selbst:
http://www.project-angel.org/funfighters/
Hat jemand eine Idee was ich falsch gemacht habe, resp. was hier falsch läuft?
Hi!
Setze noch ein return false; in den onclick-Handler. Dann dürfte das funzen[tm].
Allerdings seiest du darauf hingewiesen, dass eine per Javascript realisierte Navigation zumindest eine scriptlose Alternative benötigt - ansonsten schliesst du potentielle Besucher (wie z.B. google) aus.
Gruß aus Iserlohn
Martin
Allerdings seiest du darauf hingewiesen, dass eine per Javascript realisierte Navigation zumindest eine scriptlose Alternative benötigt - ansonsten schliesst du potentielle Besucher (wie z.B. google) aus.
Aber Google untersucht doch den Quelltext und nicht das gerenderte Resultat?
Hi!
Allerdings seiest du darauf hingewiesen, dass eine per Javascript realisierte Navigation zumindest eine scriptlose Alternative benötigt - ansonsten schliesst du potentielle Besucher (wie z.B. google) aus.
Aber Google untersucht doch den Quelltext und nicht das gerenderte Resultat?
Richtig. In deinem Fall dürfte Google auch die Links zu den Unterseiten finden.
Aber es gibt trotzdem User, die Javascript aus und CSS angeschaltet haben. Und die kriegen keine Subnavigation zu sehen.
Btw.: Ich würd den Bildertausch anders realisieren. Im Moment ruckelt das gewaltig.
Statt
function In_clan() {
document.getElementById("clan").setAttribute("src","images/menue/clan-g.jpg","false");
document.getElementById("space0").setAttribute("src","images/menue/space-gr.jpg","false");
document.getElementById("space1").setAttribute("src","images/menue/space-gl.jpg","false");
}
würde ich die Bilder alle einmal vorladen:
var clan-g = new Image();
clan-g.src = "images/menue/clan-g.jpg";
und dann später nur die src austauschen:
document.getElementById("clan").src = clan-g.src;
So läuft der Wechel flüssiger.
Gruß aus Iserlohn
Martin
Btw.: Ich würd den Bildertausch anders realisieren. Im Moment ruckelt das gewaltig.
Statt
function In_clan() {
document.getElementById("clan").setAttribute("src","images/menue/clan-g.jpg","false");
document.getElementById("space0").setAttribute("src","images/menue/space-gr.jpg","false");
document.getElementById("space1").setAttribute("src","images/menue/space-gl.jpg","false");
}
Die setAttribute funktion ist hier überflüssig und bereitet mehr Probleme als es einen nutzen hätte (mir fällt grad keiner ein).
document.getElementById("space1").src = "images/menue/space-gl.jpg";
wenn es wirklich ein Bild Objekt ist, ist auch die image collection vorzuziehen
document.images["space1"].src = "images/menue/space-gl.jpg";
Das ist schneller, zuverlässiger und abwärtskompatibel.
Struppi.