Mahlzeit markusp,
<a href="#" onclick="return show_status_cmnt(2, '2a')" id="2a"> Kommentar posten </a>
Ein Link ist ein Link, weil er linkt. Ein Link, der nicht linkt, ist kein Link. Entferne also das <a>-Element (denn offenbar führt dieser "Verweis" nirgendwohin) und nutze stattdessen ein semantisch sinnvolleres.
function show_status_cmnt(id, id2){
var id=document.getElementById(id);
var id2=document.getElementById(id2);
Du rufst die Funktion mit dem numerischen Wert 2 als ersten Parameter auf - und verwendest diesen dann innerhalb der Funktion als Parameter für getElementById(), d.h. Du betrachstest ihn als id-Attribut eines HTML-Elements. IDs müssen aber nicht nur dokumentweit eindeutig sein, <http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=sie dürfen darüber hinaus auch nicht mit Ziffern beginnen oder gar nur als Ziffen bestehen>. Mit anderen Worten: rein numerische IDs sind ungültig. Korrigiere dies.
if(id.style.display=="none"){
Hast Du Dir *vor* dieser Abfrage mal den entsprechenden Wert ausgeben lassen? Ich wette, dass der Wert nicht "none" ist, so dass in den else-Teil gesprungen wird ... und dadurch sieht es vermutlich so aus, als täte sich nichts.
die funktion funktioniert richtig, jedoch erst beim 2. mal klicken. Kann man das irgendwie machen, das es beim 1. mal klicken auch funktioniert?
Ja: korrekten Code schreiben. :-)
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|