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?

È stato utile?

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

jQuery UI Developer Guide :

  

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top