risposta

33

Da:

Usa _create per costruire e iniettare markup, gli eventi si legano, ecc Mettere funzionalità predefinita in _init(). Il widget di dialogo, ad esempio fornisce un parametro che indica se la finestra di dialogo deve essere aperta dopo l'inizializzazione del widget ; un posto perfetto per _init()!

anche:

La fabbrica widget di attiva automaticamente le _create() e _init() metodi durante l'inizializzazione, in questo ordine. A prima vista sembra che lo sforzo sia duplicato, ma c'è una differenza di vista tra tra i due. Poiché la fabbrica widget di protegge contro più istanze sullo stesso elemento , _create() sarà chiamato un massimo di una volta per ciascun widget esempio, mentre _init() sarà essere chiamato ogni volta che il widget è chiamato senza argomenti ...

Se l'autore utilizza _init() quando _create() avrebbe dovuto essere codificato, il risultato sarà che il codice in _init() verrà eseguita una volta per ogni widget di esemplificazione.

+0

Bene, una volta per * chiamata * al widget :-) In ogni caso, quel secondo collegamento ha un valore inestimabile (su questo e altri problemi); non so come l'ho perso Grazie mille! –

4

Risposta breve qui: _create() sarà eseguito quando si esegue il plugin jQuery-ui per la prima volta, come $ xx.your-plugin (le opzioni); _init() verrà eseguito prima e dopo la prima volta quando il codice viene eseguito in $ xx.your-plug (le opzioni);

Come ci sono un certo codice in jQuery-ui.custom.js come questo:

var instance = $.data(this, fullName); 
if (instance) { 
    instance.option(options || {})._init(); 
} 

Quindi, se si disegna un grafico con il plugin jQuery-ui, dopo che è tirato fuori, poi si desidera per utilizzare i nuovi dati per aggiornarlo, è necessario eseguire questa operazione in _init() per aggiornare il grafico. Se si visualizza qualcosa e non si aggiornano completamente, _create() soddisferà le proprie esigenze.

Problemi correlati