Hallo, ich habe ein kleines Problem mit der setInterval-Funktion.
Da das ein bischen schwer ist das Problem zu beschreiben, pack ich hier den ganzen Programmcode mal rein.
var names = new Array("Stendal", "Salzwedel", "Uelzen", "Gardelegen", "Bergen");
var name = "label"; //Grundbezeichnungs-ID-Name ohne Nummer für Elemente aus div class="Labels"
var counter = 0; //Zaehler für die Objekte, für die Bildung der ID
var objects;
var i=0;
function object(nameofnames) { //erfordert einen String bzw. Namen
this.string1 = nameofnames;
this.string2 = "";
this.objname = name + counter;
this.objinterval = window.setInterval("this.animateLable(document.getElementById(this.objname))", 1000); //"this.animateLable()" dort fehlt der Zielparameter
}
object.prototype.animateLable = function(target) {
if(this.string2.length<this.string1.length)
this.string2 = this.string1.substring(0, this.string2.length+1);
else
window.clearInterval(this.objinterval);
target.innerHTML = this.string2;
}
function createDivTags() { //Zum testen; Tags sind später per Hand erstellt
var parenttag = document.getElementById("LabelContainer");
var divtag;
for(var i=0; i<names.length; i++) {
divtag = document.createElement("div");
divtag.id = name + i;
divtag.innerHTML = "";
parenttag.appendChild(divtag);
}
}
function execute() { //Objekte in Array mit jeweils einen Namen initialisieren
createDivTags();
objects = new Array(names.length);
for (i=0; i<objects.length; i++) {
objects[i] = new object(names[i]);
}
}
Die Methode wird außerhalb aufgerufen und setinterval kann mit this nicht mehr anfangen. Wie kann man dieses Problem lösen?
Ich hoffe ihr könnt mir da helfen. Im Internet war nichts groß zu finden zu diesem problem.