LX: infotexte ein/ausblenden

Beitrag lesen

Hallo, dobra!

Dein Code treibt mir Tränen in die Augen; Du versuchst, mit JS Stilangaben umzusetzen: dafür haben wir CSS. Mache folgendes:

Du schreibst den Infotext und beide Grafiken direkt in die Tabelle. Nun gestaltest Du das CSS so, dass der Infotext und die "-"-Grafik standardmäßig mit display:none; ausgeblendet werden (verwende entsprechende Klassen).

Als nächstes erstellst Du eine Klasse "infoTextEnabled" für die Tabellenzeile, die, wenn sie gesetzt ist, bewirkt, dass die "-"-Grafik und der Infotext ein- sowie die "+"-Grafik ausgeblendet wird.

Jetzt brauchst Du nur noch ein Script, welches bei dem darüberliegenden TR-Element die entsprechende Klasse setzt und welches ungefähr so aussieht:

function toggleInfoText(link) {  
   var parent = link;  
   while (parent && parent.nodeName.toLowerCase() != 'tr') { parent = parent.parentNode; }  
   if (/\binfoTextEnabled\b/.test(parent.className)) {  
      parent.className = parent.className.replace(/\binfoTextEnabled\b/g, ' ');  
   } else {  
      parent.className += ' infoTextEnabled';  
   }  
   return false;  
}

Diese Funktion rufst Du im onclick-Handler des Links mit onclick="return toggleInfoText(this);" auf.

Wenn Du ganz kreativ bist, kannst Du auch noch die Grafiken als background-Images verwenden, aber das überlasse ich Dir.

Gruß, LX

--
RFC 1925, Satz 8: Es ist komplizierter als man denkt.