Frage

Einige jquery Plugin erweitern Widget _create Methode verwenden, während andere _init Methode verwenden, kann jemand die Unterschiede zwischen den beiden erklären?

Auch eine Anleitung, wenn es besser ist, Widget zu verlängern oder direkt verlängern jquery.fn?

War es hilfreich?

Lösung

Der Nachteil Widget erstreckt (im Gegensatz zu $ ??.FN) ist, dass Sie eine Abhängigkeit von jquery-ui schaffen, die das Widget „Klasse“ definiert. Diese Abhängigkeit könnte für die Benutzer des Plugin teuer sein, auch nicht jquery-ui verwenden.

Was _create vs _init geht, bin ich ziemlich sicher, dass _init kam zuerst und dann in einer letzten Überarbeitung sie eingeführt und für _create. Ich könnte über diese falsch sein, aber ich glaube, dass _init noch unterstützt wird. Wenn es dann sollte es keine Unterschiede zwischen den beiden.

Andere Tipps

Von dem jQuery UI Developer Guide :

Sobald das Element erstellt, alle anderen Anrufe an das Widget Namen, in dem der erste Parameter kein String das _init () -Methode aufrufen; wenn Optionen übergeben werden, wird die .option () -Methode vor dem _init () -Methode aufgerufen werden

Ein Widget besteht aus drei Phasen:

+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| 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.                    |  
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+

Hinweis . Die Methodennamen mit einem Unterstrich beginnen sollen vereinbarungs privat sein


So gibt es einen Unterschied zwischen _create und _init. Man ist für die Erstellung verwendet und die andere für die Initialisierung verwendet wird. Jedes Mal, wenn Sie das Widget ohne Argumente oder mit Optionen aufrufen, wird es indirekt _init Methode aufrufen. Daher kann diese auf Reset verwendet werden (reinitialisieren) ein Widget oder es verschiedene Optionen übergeben.

Weitere Informationen über jede Phase hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top