Hallo,
Das strotzt vor Fehlern - beseitigen, dann kann man weitersehen.
Deswegen kann man ja trotzdem versuchen, zu helfen.
deine Hilfsbereitschaft in allen Ehren - aber bevor du ordentliche JS-Lösungen kritisierst, solltest du vielleicht erstmal dein eigenes Wissen in diesem Bereich auf den neuesten Stand bringen.
document.getElementById("nav").getElementsByTagName("LI");
erstmal hab ich sowas noch nie gesehen, das von einem element, was man per "getElementByBlaBla" bekommt, gleich nochmal getElement machen kann
Das mag ungewöhnlich sein - aber es ist korrekt, effizient und sehr zielstrebig.
sfEls[i].onmouseover=function() ... und
sfEls[i].onmouseout=function()...
soweit ich informiert bin, muss man heutzutage mit modernen browsern ein event wie "onmouseover" anders zuweisen
Hä? Wie denn? Ein Javascript-Eventhandler erwartet ein Funktions-Objekt (wie hier gezeigt), alternativ eine Funktions-Referenz. Was du hier anprangerst, ist daher auch mustergültig - im Sinne der Trennung von Markup, Design und Funktion ist es sogar wesentlich besser, als die Eventhandler als Strings in HTML-Attributen zu notieren.
ich glaube die meisten nutzen sowas in der art:
obj = document.getElementById("mein_element_mit_mouseover");if (obj.addEventListener) {
//### Firefox, Opera, Safari
obj.addEventListener("mouseover", NAME_DER_FUNCTION, false);
} else if (all_links[i].attachEvent) {
//### IE
obj.attachEvent("onmouseover", NAME_DER_FUNCTION);
}
Das tut's vielleicht auch - aber warum derart kompliziert?
So long,
Martin