Hi,
ich erzeuge in einer Schleife neue Links. Funktioniert auch wunderprächtig.
var parentOfLinks = document.getElementById("linkliste");
if (parentOfLinks)
{
for (var ix = 0; ix < 10; ix++)
{
var aLink = document.createElement("a");
aLink.href="#link_no_" + ix;
/*****/ aLink.onclick = function() { alert('clicked'); return false; }
aLink.appendChild(document.createTextNode("Link Nr. " + ix));
parentOfLinks.appendChild(aLink);
}
}
Soweit überhaupt kein Problem, die Links erscheinen im Dokument, haben den gewünschten Text, in der Statuszeile erscheint beim Überfahren der korrekte Fragment Identifier, beim Anklicken erscheint der Alert (und der Sprung zum Fragment Identifier unterbleibt dank return false;).
Jetzt hätte ich aber gerne in der onclick-Handler-Funktion ganz gerne noch eine zur Erzeugungszeit festgelegte Variable (als einfaches Beispiel nehm ich hier mal das ix, es geht ja ums Prinzip - in der Echt-Anwendung werden es mehrere String-Variablen sein)
Also hab ich die /*****/-markierte Zeile geändert:
aLink.onclick = function() { alert('clicked ' + ix); return false; }
Das ändert auch was, aber leider nicht ganz so wie gewünscht.
Egal welchen der Links ich anklicke, es wird der Wert für ix ausgegeben, der zum Klickzeitpunkt aktuell ist (in dem Fall also immer die 10). Ich hätte aber gerne den Wert, der zum Erzeugungszeitpunkt der Funktion aktuell ist. Wie kann ich den in die function einsetzen?
Seite zum Selberprobieren: http://temp.andreas-waechter.de/linktest.html
In Realitas schaut das dann natürlich ganz anders aus (es wird eine Link-Liste aufgebaut usw.) - für den Prinzip-Test reicht das aber aus.
TIA,
cu,
Andreas
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.