Henrik
2007-05-27, 15:54:31
Hi
Ich möchte das modifizierte Suckerfish Dropdown (http://www.htmldog.com/articles/suckerfish/) einsetzen. Suckerfish ist ein vollständig mit CSS umgesetzter Dropdown, lediglich für den IE braucht es JavaScript, da dieser die Pseudo-Hover-Klasse nur an Links und nicht an Elemente vergeben kann.
Dieses JavaScript sieht ursprünglich so aus:
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
Die zweite Zeile habe ich modifiziert: ich möchte keine CSS-ID, sondern eine CSS-Klasse ändern. Diese heißt auch nicht "nav", sondern "submenu". Meine Zeile daher:
var sfEls = document.getElementByClass("submenu").getElementsByTagName("LI");
Insgesamt habe ich also diesen JavaScript Code:
sfHover = function() {
var sfEls = document.getElementByClass("submenu").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
Leider funktioniert das Script auf dem IE nicht. Da ich keine Ahnung von JavaScript habe beruhen meine Änderungen auf Vermutungen. Ist die Syntax denn korrekt oder habe ich anderweitig Fehler gemacht?
Danke!
Henrik
Ich möchte das modifizierte Suckerfish Dropdown (http://www.htmldog.com/articles/suckerfish/) einsetzen. Suckerfish ist ein vollständig mit CSS umgesetzter Dropdown, lediglich für den IE braucht es JavaScript, da dieser die Pseudo-Hover-Klasse nur an Links und nicht an Elemente vergeben kann.
Dieses JavaScript sieht ursprünglich so aus:
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
Die zweite Zeile habe ich modifiziert: ich möchte keine CSS-ID, sondern eine CSS-Klasse ändern. Diese heißt auch nicht "nav", sondern "submenu". Meine Zeile daher:
var sfEls = document.getElementByClass("submenu").getElementsByTagName("LI");
Insgesamt habe ich also diesen JavaScript Code:
sfHover = function() {
var sfEls = document.getElementByClass("submenu").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
Leider funktioniert das Script auf dem IE nicht. Da ich keine Ahnung von JavaScript habe beruhen meine Änderungen auf Vermutungen. Ist die Syntax denn korrekt oder habe ich anderweitig Fehler gemacht?
Danke!
Henrik