In Bezug auf das Objekt unten bekomme ich ein "Dies ist ein undefinierter Fehler". Dies tritt nur im nächsten() Funktionsblock auf ... wie unten beschrieben, wenn es im Funktionsblock Effekte platziert ist, gibt es keinen Fehler."This" nicht verfügbar in eingebetteten Funktion für Effekte verwendet
Dies ist nur Test-Code ... mein Ziel ist es, das Element durch den Konstruktor übergeben. Dieser Testcode hat es vom Konstruktor und von der Funktion übergeben, weil ich es teste. Sobald es passiert, werde ich das Funktionsargument von fade() nehmen.
Auch die Objektverwendung ist zufällig in einem anderen Objekt, deshalb sehen Sie auch "dieses" dort.
Object Usage:
var EffectsObject = new Effects(this.element);
EffectsObject.fade(this.element, 'down', 4000);
Object Definition:
var Effects = function(element)
{
this.element2 = element;
};
Effects.prototype.fade = function(element1, direction, max_time)
{
Effects.elapsed = 0;
this.element2 = foo; // works here but not if I put it in next();
function next()
{
Effects.elapsed += 10;
if (direction === 'up')
{
element2.style.opacity = Effects.elapsed/max_time; // fails here
}
else if (direction === 'down')
{
this.element2.style.opacity = (max_time - Effects.elapsed)/max_time;
}
if (Effects.elapsed <= max_time)
{
setTimeout(next, 10);
}
}
next();
return true;
};
Das funktioniert .... unter einer Minute ... deshalb liebe ich SO. –
ja, aber ich hoffe, Sie verstehen, warum ... – hvgotcodes
@ChrisAaker aktualisiert – hvgotcodes