Hallo, Orlando (und Andreas),
Ein paar Anmerkungen:
Dürfen überhaupt zwei label-Elemente für ein Eingabefeld existieren...? (Im Zweifel würde ich es so lassen und auf XForms warten. ;-))
Der Code geht über zwei Bildschirmbreiten bei 1024x768, man bedenke dass es <pre> ist, also explizit white-space:nowrap, zudem ist es pixelgenaue Schrift, die sich im IE nicht skalieren lässt). Spätestens (!) bei 110-120 Zeichen pro Zeile würde ich einen Zeilenumbruch machen, auch wenn es mitten im Element-Starttag natürlich schwierig ist. Zwei Beispiele:
<tr class="unchecked" id="rownr1"><td><input type="checkbox" id="checknr1" name="checknr1" onclick="return rowclickedcheck('checknr1','rownr1');" onkeyup="return rowclickedcheck('checknr1','rownr1');"></td><td><label for="checknr1">Vereinigtes Königreich von Großbritannien und Nordirland</label></td><td><label for="checknr1">London</label></td></tr>
--->
<tr class="unchecked" id="rownr1">
<td><input type="checkbox" id="checknr1" name="checknr1" onclick="return rowclickedcheck('checknr1','rownr1');" onkeyup="return rowclickedcheck('checknr1','rownr1');"></td>
<td><label for="checknr1">Vereinigtes Königreich von Großbritannien und Nordirland</label></td>
<td><label for="checknr1">London</label></td>
</tr>
und
window.setTimeout("colorizeRow('"+checkid+"','"+rowid+"')",300); //delay ist notwendig, weil der Eventhandler ausgelöst wird, bevor die Checkbox umgeschaltet wird...
--->
// delay ist notwendig, weil der Eventhandler ausgelöst wird,
// bevor die Checkbox umgeschaltet wird...
window.setTimeout("colorizeRow('"+checkid+"','"+rowid+"')",300);
Und so weiter. Das ist schon viel übersichtlicher. Ich würde nicht "harte" Tabulatoren für Einrückungen benutzen, besser je Einrückebene X Blanks (ich verwende immer X=1).
Lange Strings kann man theoretisch auch einfach in mehrere Zeilen umbrechen:
string="murks murks murks murks murks murks"+
"murks murks murks murks murks murks"+
"murks murks murks murks murks murks";
Ansonsten:
"auf einee Checkbox"
^
"idrow = "" + idrowcommon + i;;"
^
Ich würde Attribute und Elemente mit <code> kennzeichnen (nur ein Vorschlag), bspw.: "...wird durch den Wert im <code>for</code>-Attribut erreicht, der mit dem <code>id</code>-Wert [oder <var>? ;)] des <code>input</code>-Elements übereinstimmen muss"
Unter "Beachten Sie" fehlt, dass das label-Element nicht nur nicht im NS4 funktioniert, sondern ihn auch umgehen zum Crash veranlasst... insofern ist dann nichts mehr "voll funktionsfähig". ;)
Hm, der 300ms-Timeout zieht sich inklusive Rendern bei mir (P133) bis zu einer Sekunde hin (im Hintergrund läuft Les Nuits von Nightmares on Wax in 192kbps und verbraucht 85% der Rechenkapazität... ;-))
Abgesehen davon sind mir keine Fehler aufgefallen. Vielen Dank an Andreas für den Artikel, "gute Arbeit". :)
Vielleicht beschäftige ich mich in den nächsten Tagen noch einmal genauer und "optimiere" möglicherweise etwas bzw. spiele ein wenig damit herum (soll nicht heißen, dass es etwas zu optimieren gäbe). ;)
Mathias
(Der, der gerade den IE benutzt, um den Artikel auszutesten. :))