Hallo Ihr Spezies,
im folgenden habe ich mein Problem in Kurzfassung "codiert":
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head >
<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
<title>Testseite</title>
<script>
function fOnload()
{
window["dynamischErzeugteVariable"] = new Array();
for(i=0;i<10;i++)
{
window["dynamischErzeugteVariable"][i] = i;
}
for(j=0;j<10;j++)
{
var vDynamischesDiv = document.getElementById("bodyId").appendChild(document.createElement("div"));
with(vDynamischesDiv)
{
id = "div"+j;
style.position = "relative";
style.marginTop = "5px";
style.width = "20px";
style.height = "20px";
style.backgroundColor = "red";
innerHTML = j;
}
var vParameter = window["dynamischErzeugteVariable"][j];
document.getElementById("div"+j).onclick = function() {fTest(vParameter);};
}
}
function fTest(pParameter)
{
alert(pParameter);
}
</script>
</head>
<body id="bodyId" onload="fOnload();">
</body>
</html>
Ziel ist es (in diesem Demo) das z.B. beim click auf das Div mit der id "div5" ein alert mit "5" erscheint. Es kommt aber immer "9", also der hier letzte erzeugte Div. Es hat wahrscheinlich irgendwas mit der Referenz auf das window-Objekt zu tun...??? Ich google schon den ganzen Tag, aber mir fehlt mal wieder das tiefere Verständnis und damit das know how (parseInt();toString();String() habe ich schon alles probiert). Ich hoffe einer von euch kann mir sagen wie der vParameter aussehen muss oder was zu machen ist damit das funktioniert.
Schon mal vorab vielen Dank.
Jense