Gunnar Bittersmann: Zeilen, Spalten hervorheben beim Überfahren mit der Maus

Beitrag lesen

@@dedlfix:

Man erkennt, dass das eine Browserweiche sein soll am IE des Funktionsnamens, wenn man weiß, dass Browserweichen nötig sind. Ist das Allgemeinwissen auch unter Anfängern?

Anfängern würde ich keinen fertigen Code posten.

Im Grunde braucht es nicht einmal eine Variable table, denn darauf greifst du zumindest in dieser Funktion nur einmal zu und könntest dort gleich hoveredRow.parentNode.parentNode notieren.

Ja, etwas Optimierung in Bezug auf Performance ist da noch drin. Andererseits macht das den Code weniger gut lesbar; und du beklagst doch schon, dass er jetzt schon nicht gut lesbar sei.

for (var childNode = target, hoveredColNo = -1; childNode = childNode.previousSibling;)

Das ist ja eine ganz gemeine Geschichte.

Ach was. ;-)

Dass hier Abbruchbedingung und Weiterschaltung in einem notiert ist gehört kommentiert, finde ich.

Oder man gewöhnt sich dran, dass man mit for-Schleifen nicht nur stupide Zähler hoch- und runtersetzen kann.

if (childNode.nodeType == 3) hoveredColNo++;

Mut zur Lücke oder warum zählst du hier Textnodes?

Argl, ich hätte doch nochmal http://de.selfhtml.org/javascript/objekte/node.htm#node_type@title=nachlesen sollen. Ich wollte nicht die Textknoten (3), sondern die Elementknoten (1) zählen. Das erklärt wohl auch den anderen Startwert in der IE-Funktion.

Berichtigung:

  for (var childNode = target, hoveredColNo = 0; childNode = childNode.previousSibling;)  
  {  
   if (childNode.nodeType == 1) hoveredColNo++;  
  }

Live long and prosper,
Gunnar

--
Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)