Anne: onclick registriert nur erstes Klicken

Beitrag lesen

Okay, ich hab's hingekriegt. Vielen Dank für Eure Hilfe!

Hier ist der vollständige Code, getestet unter Windows XP auf IE 6.0 und Netscape 7.2 (falls jemand mal etwas Ähnliches braucht):

<html><head><title>Test</title>
<script type = "text/javascript">
<!--
var aspoiler;

function initSpoiler() {
   aspoiler = new Array();
   var node;
   var par;
   var bnode;
   var btext;
   var arr = document.getElementsByName('spoiler');     // Array mit sämtlichen Elementen, die den Namen "spoiler" haben
   for (var i = 0; i < arr.length; i++) {
      node = arr[i];
      aspoiler[i] = node.firstChild.nodeValue;                  // so dass man mithilfe der id auf den entsprechenden Spoilertext zugreifen kann

node.id = i;
      node.onclick=showSpoiler;

bnode = document.createElement("b");                      // ersetze Text durch <b>Spoiler</b>
      btext = document.createTextNode("Spoiler");
      node.replaceChild(bnode, node.firstChild);
      node.firstChild.appendChild(btext);
   }
}

function showSpoiler() {
   var el = this;
   var text = document.createTextNode(aspoiler[this.id]);   // ersetze <b>Spoiler</b> durch den im Array gespeicherten ursprünglichen Text
   el.replaceChild(text, el.firstChild);
   el.onclick = hideSpoiler;
}

function hideSpoiler() {
   this.onclick=showSpoiler;

bnode = document.createElement("b");                          // ersetze Spoilertext wieder durch <b>Spoiler</b>
   btext = document.createTextNode("Spoiler");
   this.replaceChild(bnode, this.firstChild);
   this.firstChild.appendChild(btext);
}

//-->
</script>
</head><body onLoad = "initSpoiler()">

<a id = "2" name = "spoiler" onclick="showSpoiler()">Hallo</a></br>
<a id = "3" name = "spoiler">Hallo2</a>
</br>
</body></html>