widget de jquery, _create ou _init
-
09-10-2019 - |
Question
Certains extension plug-in jquery widget de méthode utiliser _create, tandis que d'autres utilisent _init méthode, quelqu'un peut-il expliquer les différences entre les deux?
En outre aucune indication sur le moment où il est préférable d'étendre widget ou étendre directement jquery.fn?
La solution
L'inconvénient d'étendre un widget (par opposition à .fn $) est que vous créez une dépendance sur jquery-ui qui définit le widget « classe ». Cette dépendance pourrait être coûteux pour les utilisateurs de votre plugin qui n'utilisent pas aussi jquery-ui.
En ce qui _create vs _init va, je suis sûr que _init est venu d'abord, puis dans une révision récente et ils ont introduit faveur _create. Je peux me tromper à ce sujet, mais je crois que _init est toujours pris en charge. S'il est alors il ne devrait pas y avoir de différences entre les deux.
Autres conseils
De jQuery UI Developer Guide :
Une fois que l'élément est créé, tous les autres appels au nom du widget où le premier paramètre n'est pas une chaîne appellera la méthode _init (); si les options sont passées, la méthode .Option () sera appelée avant la méthode _init ()
Un widget comporte trois phases:
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| 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 :. Les noms de méthode commençant par un trait de soulignement sont destinés à être privé par convention
Donc, il y a une différence entre _create
et _init
. L'un est utilisé pour la création et l'autre est utilisée pour l'initialisation. Chaque fois que vous appelez le widget sans argument ou avec des options, il appellera indirectement méthode _init
. Par conséquent, il peut être utilisé pour reset (re-initialize) un widget ou le transmettre différentes options.