Javascript erst nach Doppelklick

kellykatz

Grünschnabel
Hallo,

mein Problem ist folgendes: Ich möchte einfach, dass bei einem Klick auf einen Link etwas sichtbar wird und bei einem erneuten Klick wieder unsichtbar.

Das habe ich einfach mit einer if-clause gelöst, also, wenn der display eines Elements auf none steht, soll er es darstellen und wenn nicht, dann soll er das display auf none setzen.
Klingt einfach und logisch, aber aus irgendeinem Grund passiert das erst, wenn ich nach dem Neuladen der betreffenden Seite zweimal auf den Link klicke. Dann funktioniert alles wunderbar.

hier der JS Code:

Code:
function angebot_an(nummer){
if(document.getElementById("angebot_"+nummer).style.display == "none")
 document.getElementById("angebot_"+nummer).style.display="block";
else{
 document.getElementById("angebot_"+nummer).style.display="none";}
 }

und hier der HTML-Code:

Code:
<a href="#" onclick="angebot_an(1)">Illustration</a><br />

<div class="angebote_vorstellung" id="angebot_1"> 
</div>

Ich bedanke mich schon im Voraus für die Hilfe :)

kelly
 
Hi,

da sich die Voreinstellung display:none für das Element in einem zentralen Stylesheet befindet, werden im Javascript die display-Werte none und block entgegengesetzt deklariert:
Javascript:
function angebot_an(nummer){
if(document.getElementById("angebot_"+nummer).style.display == "block")
 document.getElementById("angebot_"+nummer).style.display="none";
else{
 document.getElementById("angebot_"+nummer).style.display="block";}
 }

Mit deiner Script-Variante müsste stattdessen die CSS-Formatierung innerhalb des HTML-Elements über das style-Attribut erfolgen:
HTML:
<div class="angebote_vorstellung" id="angebot_1" style="display:none;"> </div>


mfg Maik
 
Zurück