JQuery Widget Callback. Eine Funktion zum Feuer bekommen
-
14-10-2019 - |
Frage
Ich habe einem JQuery -Widget einen Rückruf hinzugefügt. Es wird Daten in der Konsole ausgegeben, aber wie kann ich sie auf die Daten auf der Seite anwenden?
Beispiel...
In meinen Widget -Optionen habe ich Folgendes zur Verfügung gestellt, um Eingaben zu erhalten:
complete : ''
und haben dem Widget auch eine Methode hinzugefügt:
_complete : function(data) {
if(this.options.complete) {
console.log(data);
}
}
In einer anderen Methode des Widgets mache ich einen Ajax -Anruf und rufe dann diesen auf _complete
Methode zum Feuer, nachdem der Ajax beendet ist wie:
self._complete(self.options.complete);
Wenn ich also das Widget benutze, übergende ich etwas an die complete
Option wie so:
complete : function(){$('.gridrow').css('background-color','#FFF');}
Ich werde diese Ausgabe in der Konsole sehen wie:
function(){$('.gridrow').css('background-color','#FFF');}
Aber ich möchte das wirklich auf den Code anwenden, damit er die Hintergrundfarbe des Gridrow -Klassens ändert.
Ich kann alles weitergeben und es in der Konsole ausgeben lassen, aber wie wende ich es tatsächlich auf die Seite an?
Lösung
Ich bin mir nicht sicher, warum Sie in die bestehen müssen complete
Funktion zu deinem _complete
Funktion, sicher können Sie es einfach testen und es dann ausführen. Die Schlüsseländerung ist, dass Sie die aufrufen müssen complete
Funktion verwenden ()
:
_complete : function() {
if (this.options.complete) {
this.options.complete(); // execute the input function
}
}
Wenn Sie das Ergebnis dieser Funktion an der Konsole protokollieren möchten, stellen Sie dies sicher, dass complete
Gibt einen Wert zurück:
complete : function() { return $('.gridrow').css('background-color','#FFF'); }
Dann:
_complete : function() {
if (this.options.complete) {
console.log(this.options.complete()); // print the result
}
}