Domanda

Ho aggiunto una funzione di callback per un jquery widget di. Sarà dati di output nella console, ma come faccio a farlo applicare qualcosa ai dati nella pagina?

Esempio ...

nelle mie opzioni del widget ho fatto la seguente disposizione per ricevere l'input:

 complete        : ''

e hanno aggiunto un metodo al widget così:

_complete : function(data) {
        if(this.options.complete) {
            console.log(data);
        }
    }

In un altro metodo del widget faccio una chiamata AJAX e quindi chiamare utilizzare questo metodo _complete al fuoco dopo l'Ajax ha finito come:

self._complete(self.options.complete);

Quindi, se, quando uso il widget, passo qualcosa per l'opzione complete in questo modo:

complete : function(){$('.gridrow').css('background-color','#FFF');}

I vedrà questa uscita nella console come:

function(){$('.gridrow').css('background-color','#FFF');}

Ma quello che voglio veramente è quello di applicare in realtà che il codice, in modo che cambia il colore di sfondo classi gridrow.

Mi può passare in qualsiasi e farlo uscita nella console, ma come ho effettivamente applico alla pagina?

È stato utile?

Soluzione

Non so il motivo per cui è necessario passare nella funzione complete alla funzione _complete, sicuramente si può semplicemente prova per esso e poi eseguirlo. Il cambiamento chiave è che è necessario richiamare la funzione complete utilizzando ():

_complete : function() {
        if (this.options.complete) {
            this.options.complete(); // execute the input function
        }
    }

Se si desidera registrare il risultato di tale funzione per la console quindi garantire che complete restituisce un valore:

complete : function() { return $('.gridrow').css('background-color','#FFF'); }

Quindi:

_complete : function() {
        if (this.options.complete) {
            console.log(this.options.complete()); // print the result
        }
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top