Struppi: onclick wieder schließen?

Beitrag lesen

function InfoBoxAnzeigen(e,txt,offsetX,offsetY)
{
        if (offsetX) {offsetx=offsetX;} else {offsetx=20;}
        if (offsetY) {offsety=offsetY;} else {offsety=0;}

wenn du schon weiter unten eine einfache Entweder oder Abfrage benutzt warum nicht hier? bzw. warum überhaupt die neue Variabel?

if (!offsetX) offsetX=20;  
if (!offsetY) offsetY=0;

var PositionX = 0;
        var PositionY = 0;
        if (!e) var e = window.event;

hier ist das var überflüssig, da ein Parameter sowieso nur lokal gültig ist.

text = document.getElementById("text").innerHTML;
  text ? document.getElementById("text").innerHTML=null : document.getElementById("text").innerHTML=txt;

Den einfachen entweder Operator als if zu mißbrauchen ist zwar erlaubt, aber hier unschön und wenn du ihn richtig einsetzen würdest wäre es etwas übersichtlicher:

document.getElementById("text").innerHTML = document.getElementById("text").innerHTML ? null : txt  
;  

document.getElementById('infobox').style.left = (PositionX+offsetx);
        document.getElementById('infobox').style.top = (PositionY+offsety);

Das funktioniert nur im Quirksmode, im Standardmode der immer zu empfehlen ist, fehlen die Einheiten.

document.getElementById('infobox').style.left = (PositionX+offsetX) +'px';  
document.getElementById('infobox').style.top = (PositionY+offsetY) +'px';

<div id="infobox" style="position:absolute; margin-top: 45px; width: 525px;">

Ein absolut positioniertes Element mit margin zu positionieren ist ungeschickt.

<table bgcolor="#FFFFFF" cellpadding="4">
           <tr>
            <td><span id="text"></span></td>
          </tr>
         </table>

Wozu ist hier die Tabelle nötig?

Das ausblenden sollte auch ohne Probleme funktionieren, wobei ich statt visibility eher display verwenden würde.

Struppi.