Mathias Brodala: Nach Klick ist JS nicht mehr definiert

Beitrag lesen

Hallo mir.

Moin

hast du eventuell mal etwas vollständigeren Code?

Klar:

<html>
<head>
<title>0.4-devel</title>
</head>
<body>

<script type="text/javascript">

var Ebene = 1;

function changestatus(layerName)
{
    if (document.getElementById(layerName).style.display == "none")
    {
      showLayer(layerName);
    } else
    {
      hideLayer(layerName);
    }
}

function hideLayer(layerName) {
   document.getElementById(layerName).style.display = "none";
}
function showLayer(layerName) {
   document.getElementById(layerName).style.display = "inline";
}

function aufbau(id1, id2, currentEbene)
{
  document.write("<a href="javascript:changestatus('eindiv')">Anzeigen/Verbergen</a><br>");
  document.write("<div id="eindiv">Ich bin der Inhalt eines DIVs!</div>");
}

function initAufbau()
{
    changestatus('menu');
    aufbau(-1, -1, Ebene);
}

document.write("<div id="menu">");
document.write("<h1>Überschrift!</h1><br><br>");
document.write("<input type="checkbox" name="menu">Menü<br></div>");
// document.write("<br><br><br><a href="javascript:initAufbau()">Anzeigen!</a>");
//initAufbau();
</script>

</body>
</html>

„<a href="javascript:initAufbau()">Anzeigen!</a>“
  → initAufbau()
    → aufbau(-1, -1, Ebene);
      → „document.write("<a href="javascript:changestatus('eindiv')">Anzeigen/Verbergen</a><br>");“

Mit letzterem überschreibst du das komplette aktuelle Dokument. Dass hiernach der nicht mehr vorandene JS-Code Probleme macht, dürfte ersichtlich sein.

Du solltest document.write gänzlich begraben und dich mit den heute <http://de.selfhtml.org/javascript/objekte/document.htm@title=üblichen Zugriffsmethoden auf Elementobjekte> (getElement*) befassen.

Einen schönen Montag noch.

Gruß, Mathias

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules