Funktion direkt übergeben und wenn Vorgang fertig -> ausführen
PoWl89
- javascript
Hi!
Ich habe eine kleine Funktion bzw. ein Objekt geschrieben, mit dem ich Dinge ein und ausfaden lassen kann.
Allerdings möchte ich bei bedarf eine Funktion übergeben können, die dann am Ende ausgeführt wird.
var blub = new fadingObject();
blub.init('html-element-id');
blub.callBackFunc(function() { alert('Diese Funktion hier soll nach Beendigung des Vorgangs ausgeführt werden.') });
blub.fadeTo(100);
Nur wie führe ich diese Funktion dann auch aus? Ggf. möchte ich dann innerhalb dieser callbackfunktion eine weitere callbackfunktion registrieren können und einen neuen Fadingvorgang starten:
blub.callBackFunc(function() {
blub.callBackFunc(function() {
alert("Wird nach dem 2. Fadingvorgang ausgeführt");
});
blub.fadeTo(50);
});
blub.fadeTo(100);
Das dürfte dann erst zu 100% und danach zu 50% faden und dann die Alert-Meldung ausgeben.
Jemand ne Idee wie ich sowas programmier?
lg PoWl
Lieber PoWl89,
var blub = new fadingObject();
blub.init('html-element-id');blub.fadeTo(100);
blub.callBackFunc(function() {
var blub2 = new fadingObject();
blub2.init = this.init; // oder etwa so? blub2.init = blub.init;
blub2.callBackFunc(function() {
alert("Wird nach dem 2. Fadingvorgang ausgeführt");
});
alert("Callback-Funktion von blub.") });
blub2.fadeTo(50);
});
blub.fadeTo(100);
Keine Ahnung, ob das mit dem "this" hinhaut, jedenfalls so könnte ich mir eine Lösung vorstellen.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
aeh halt..
so wie ich das aufgeschrieben habe sollte das schon funktionieren. per blub.callBackFunc(...) wird dem FadingObject eine Funktion übergeben, die nach beendigung des Fading vorgangs ausgeführt werden soll
nur wie mache ich das dann, dass die ausgeführt wird?
lg PoWl
Hi,
nur wie mache ich das dann, dass die ausgeführt wird?
Ja wie fuehrt man denn Funktionen im allgemeinen aus ...?
Man hat eine Funktionsreferenz, haengt ein Paar runder Klammern hinten dran ... und dann schaut man mal, was passiert.
MfG ChrisB
Lieber PoWl89,
so wie ich das aufgeschrieben habe sollte das schon funktionieren.
das tut es auch sicherlich.
nur wie mache ich das dann, dass die ausgeführt wird?
Ich habe ja keinen Schimmer, was die Methode fadeTo alles macht. An ihrem Ende sollte eine Prüfung stattfinden, ob die Eigenschaft this.callBackFunc eine gültige Funktion enthält, um diese dann auch auszuführen. Ich stellte mir das in etwa so vor:
fadingObject.prototype.fadeTo = function (val) {
// Jetzt wird gefadet...
// callBack ausführen?
if (typeof this.callBackFunc == "function") {
this.callBackFunc();
}
}
Liebe Grüße aus Ellwangen,
Felix Riesterer.