style im Tag

Hallo zusammen,

ich habe ein JavaScript, das einen div Container auf Knopfdruck erscheinen und wieder verschwinden lässt. Standadgemäß ist der div Container nicht sichtbar. Das erreiche ich mit

Wenn ich nun auf einen Link klicke, dann wird es sichtbar. Wenn ich die obige Eigenschaft im div Tag stehen habe, dann muss ich den Link nur einmal anklicken. Wenn die Eigenschaft in einer externen Datei ist, dann muss ich den Link zweimal anklicken, damit was passiert!

function comment_show ()
{
  if (document.getElementById("give_answers").style.visibility=="hidden") {
    document.getElementById("give_answers").style.visibility="visible";
 
  } 
  else {
   document.getElementById("give_answers").style.visibility="hidden";
  
  }
} 

Warum?

Vielen Dank
lg, freakXHTML

Das Style-Objekt wird aus Performencegründen nicht am Anfang befüllt mit den errechneten Werten aus deinen CSS-Angaben (Computed Style). Anders ist es, wenn das style-Attribute benutzt wurde, dann sind diese Werte bekannt.

Ich würde dir vorschlagen lieber className = „hidden“ zu setzen bzw. zu entfernen. Das ist sauberer und lässt sich einfacher ändern (denn du suchst vielleicht eher display: none).

und wenn du es mit display none machst dann brauchst du auch kein javaScript sondern es reicht wenn du es mit css machst, was besser für die barrierefreiheit ist.

CSS kennt aber nur :hover und das ist nicht brauchbar.