jquery widget _create o _init
-
09-10-2019 - |
Domanda
Alcuni plugin jQuery estendere widget di utilizzare il metodo _create, mentre altri usano _init metodo, qualcuno può spiegare le differenze tra i due?
Anche qualsiasi indicazioni su quando è meglio estendere widget o direttamente estendere jquery.fn?
Soluzione
L'aspetto negativo di estensione widget di (al contrario di $ .fn) è che si crea una dipendenza da jQuery-ui che definisce il widget di "classe". Che la dipendenza potrebbe essere costoso per gli utenti del tuo plugin che non utilizzano anche jquery-ui.
Per quanto riguarda _create vs _init va, io sono abbastanza sicuro che _init è venuto prima e poi in una recente revisione hanno introdotto e favore _create. Potrei sbagliarmi su questo, ma credo che _init è ancora supportato. Se è allora non ci dovrebbe essere alcuna differenza tra i due.
Altri suggerimenti
Una volta che l'elemento è stato creato, tutte le altre chiamate al nome del widget in cui il primo parametro non è una stringa chiamerà il metodo _init (); se sono passati opzioni, il metodo .OPtion () sarà chiamato prima del metodo _init ()
Un widget ha tre fasi:
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| Phase | Name | jQuery Method | Description |
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| 1 | Creation | _create | First time the widget is applied to an element, it is called. |
| 2 | Initialization | _int | The _init method is called after _create when the widget is first applied to its elements. |
| 3 | Destruction | destroy | The widget's destroy method is used to detach a widget from an element. |
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
NOTE :. I nomi dei metodi che iniziano con un carattere di sottolineatura sono destinate ad essere privata per convenzione
Quindi c'è una differenza tra _create
e _init
. Uno è utilizzato per la creazione e l'altro è usato per l'inizializzazione. Ogni volta che si chiama il widget senza argomenti o con le opzioni, sarà indirettamente chiamare il metodo _init
. Pertanto, questo può essere utilizzato per Reset (ri-inizializzare) una widget o passarlo diverse opzioni.
Maggiori informazioni su ogni fase qui .