Вопрос

Некоторые плагин jQuery расширяют виджет, используют метод _create, в то время как другие используют метод _init, может кто-то объяснить различия между двумя?

Также любое руководство, когда лучше расширить виджет или напрямую расширить jquery.fn?

Это было полезно?

Решение

Недостатком к расширению виджета (в отличие от $ .FN) состоит в том, что вы создаете зависимость на jQuery-ui, который определяет виджет «класс». Эта зависимость может быть дорогой для пользователей вашего плагина, который также не использует jQuery-ui.

Насколько _Create VS _init идет, я уверен, что _init пришел первым, а затем в недавнем ревизии, который они ввели и одолжите _create. Я мог бы ошибаться об этом, но я верю, что _init все еще поддерживается. Если это тогда между ними не должно быть никаких различий.

Другие советы

От Руководство разработчика JQuery UI:

Как только элемент создан, все остальные вызовы на имя виджета, где первый параметр не является строкой, позвонит методу _init (); Если параметры будут переданы, метод .Option () будет вызываться перед методом _init ()

Виджет имеет три фазы:

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

ПРИМЕЧАНИЕ: Имена методов, начиная с подчеркивания, предназначены для того, чтобы были частные по конвенции.


Так что есть разница между _create и _init. Отказ Один используется для создания, а другой используется для инициализации. Каждый раз, когда вы называете виджет без аргументов или с вариантами, он косвенно позвонит _init метод. Следовательно, это может быть использовано для перезагрузить (повторно инициализировать) виджет или пропустите его разные варианты.

Подробнее о каждой фазе здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top