ejemplo drop content accept jquery jquery-ui widget construction

jquery - drop - ui-widget-content



jquery widget,_create o_init (3)

Algunos complementos de jquery extienden el uso de widgets _create method, mientras que otros usan el método _init, ¿alguien puede explicar las diferencias entre los dos?

¿También alguna orientación sobre cuándo es mejor extender el widget o extender directamente jquery.fn?


La desventaja de extender el widget (a diferencia de $ .fn) es que crea una dependencia en jquery-ui que define la "clase" de widget. Esa dependencia puede ser costosa para los usuarios de su complemento que no usan jquery-ui.

En cuanto a _create vs _init goes, estoy bastante seguro de que _init fue primero y luego en una revisión reciente introdujeron y favorecieron _create. Podría estar equivocado sobre esto, pero creo que _init todavía es compatible. Si es así, no debería haber ninguna diferencia entre los dos.


De la guía jQuery UI Developer :

Una vez que se crea el elemento, todas las demás llamadas al nombre del widget donde el primer parámetro no es una cadena llamará al método _init (); si se pasan opciones, se llamará al método .option () antes del método _init ()


Un widget tiene tres fases:

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

NOTA : Los nombres de método que comienzan con un guión bajo son privados por convención.

Entonces hay una diferencia entre _create y _init . Uno se usa para la creación y el otro se usa para la inicialización. Cada vez que llame al widget sin argumentos o con opciones, indirectamente llamará _init método _init . Por lo tanto, esto se puede utilizar para restablecer (reinicializar) un widget o pasarle diferentes opciones.

Más detalles sobre cada fase aquí .