Joachim: funktion in onClick dynamisch hinzufügen

Beitrag lesen

Hi,

Genau das ist die Lösung meines Problems. herzlichen Dank. Mir war einfach nicht klar, wieso die Funktionsparameter immer wieder überschrieben werden,

Alternativ kannst Du auch ein so genanntes Closure verwenden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<script type="text/javascript">
    function init () {
        var func, cnt, txt, p, div;
        for (var i = 0; i < 5; i++) {
            cnt     =  i + 1;
            div     =  document.getElementById("main");
            p       =  document.createElement("p");
            txt     =  document.createTextNode("Wert: " + cnt);
            func    =  function () {
                var y =  cnt;
                var x =  function () {
                    alert(y);
                }
                p.onclick=x;
            }
            func();
            p.appendChild(txt);
            div.appendChild(p);
        }
    }
</script>
</head>
<body onload="init()">
    <div id="main"></div>
</body>
</html>

Guter Artikel hierzu: http://aktuell.de.selfhtml.org/artikel/javascript/organisation/

Gruesse, Joachim

--
Am Ende wird alles gut.