JQuery widget devolución de llamada. Conseguir una función para el fuego
-
14-10-2019 - |
Pregunta
He añadido una devolución de llamada a un widget de jQuery. Se entrega la información en la consola pero ¿cómo puedo conseguir que se aplique algo a los datos en la página?
Ejemplo ...
en mis opciones de widgets he hecho la siguiente disposición para recibir la entrada:
complete : ''
y han añadido un método para el widget, así:
_complete : function(data) {
if(this.options.complete) {
console.log(data);
}
}
En otro procedimiento para el widget hago una llamada AJAX y luego llamar a utilizar este método _complete
al fuego después de que el Ajax ha terminado como:
self._complete(self.options.complete);
Así que si, cuando se utiliza el widget, paso algo a la opción complete
este modo:
complete : function(){$('.gridrow').css('background-color','#FFF');}
Me verá esta salida en la consola como:
function(){$('.gridrow').css('background-color','#FFF');}
Pero lo que realmente quiero es aplicar efectivamente que al código, para que cambie el color de fondo GridRow clases.
Me puede pasar en lo que sea y conseguir que la salida de la consola, pero cómo me aplico en realidad a la página?
Solución
No estoy seguro de por qué tiene que pasar en la función complete
a su función _complete
, seguro que puede simplemente prueba para él y luego ejecutarlo. El cambio fundamental es que se debe invocar la función complete
usando ()
:
_complete : function() {
if (this.options.complete) {
this.options.complete(); // execute the input function
}
}
Si desea registrar el resultado de esa función a la consola a continuación, asegurar que complete
devuelve un valor:
complete : function() { return $('.gridrow').css('background-color','#FFF'); }
A continuación:
_complete : function() {
if (this.options.complete) {
console.log(this.options.complete()); // print the result
}
}