Ciao ragazzi,
Ho finito di leggere la guida base di javascript come da voi consigliatami e stavo cercando di decifrare il codice seguente:
codice:
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);
Ma non riesco a capire un paio di cose:
1) Che significato ha \\b? Sul manuale c'é scritto che \b serve per dire al browser "guarda che sfhover é l'ultima di tette le classi assegnate all'oggetto LI!". Nel codice però ci sono 2 stanghette e per di più il file funziona uguale anche senza "\\b".
2) Perché nel codice che ho trovato si scrive:
if (window.attachEvent) {window.attachEvent("onload", sfHover);} invece di if (window.attachEvent) window.attachEvent("onload", sfHover); quando nella guida che ho letto c'era scritto di metterle sempre? E' una dimenticanza oppure si possono omettere quando c'é un solo comando dopo il test?
3) Perché list-item é scritto maiuscolo invece di minuscolo? Una bella proprietà di getElementsByTagName oppure una distrazzione sopportata da ie5 e ie6, browser per i quali é stato scritto appositamente quel codice?
Mille grazie come sempre