molily: JavaScript Aufruf wie in CSS Datei definieren?

Beitrag lesen

el.className += "highlight";
                    ▲
Kleine Anmerkung: Hier wäre ein Leezeichen gut

Da war absichtlich keines und diese Veränderung alleine würde die Sache nicht verbessern, weil der gesamte Code auf nur einer Klasse basiert. Nochmal zum Verständnis der zuständige Code:

/* IE 6 kann keine multiplen Klassen. Also machen wir es zu Fuß. */  
var className = el.className;  
if (className == "highlight" || className == "secondhighlight") {  
   /* Lösche »highlight« aus dem Klassennamen, wenn vorhanden */  
   el.className = className.replace("highlight", "");  
} else {  
   /* Füge »highlight« zum Klassennamen hinzu */  
   el.className += "highlight";  
}

Folgendes leistet dieser Code (vorher > nachher):
class=""                > class="highlight"
class="second"          > class="secondhighlight"
class="highlight"       > class=""
class="secondhighlight" > class="second"

Ich habe mit den Klassen second, highlight und secondhighlight gearbeitet, um die Zebra-Formatierung beizubehalten (d.h. auch im Highlight-Modus unterschiedliche Formatierungen). In anderen Browsern ginge das durch *eine* highlight-Klasse und unterschiedliche Formatierungen für tr.highlight und tr.second.highlight - aber nicht im IE 6.

Eine bessere Umsetzung ist natürlich möglich, aber dann müsste man Helferfunktionen für hasClass, addClass und removeClass einbinden oder den Highlight-Status am Element speichern. Ich hatte es bewusst einfach und unflexibel gelöst, weil das wieder ein Thema für sich wäre.

Mathias