Вопрос

Я думаю, я понимаю разницу между _create а также _init в определениях виджетов (см. Например этот вопрос), но я все еще не уверен в цель для различия. Какие виды задач настройки вступают в _create() или в _init()? Что идет не так, если автор виджета выбирает неправильный?

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

Решение

Из:

Использовать _create Для создания и введения разметки, связывания событий и т. Д. Поместите функциональность по умолчанию в _init()Анкет Виджет диалога, например, предоставляет autoOpen Параметр, обозначающий, должен ли диалог быть открытым после инициализации виджет; Идеальное место для _init()!

Также:

Фабрика виджетов автоматически запускает _create() а также _init() Методы во время инициализации, в этом порядке. На первый взгляд кажется, что усилия дублируются, но между ними существует разница в зрелище. Потому что фабрика виджетов защищает от нескольких экземпляров на одном и том же элементе, _create() будет называться максимум один раз для каждого экземпляра виджета, тогда как _init() будет вызывать каждый раз, когда виджет вызывается без аргументов ...

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

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

Короткий ответ Здесь: _create () будет выполняться при запуска плагина jquery-ui в первый раз, например, $ xx.your-plugin (ваши параметры); _init () будет выполнен сначала и после первого раза Когда ваш код запускается в $ xx.your-plugin (ваши параметры);

Как есть какой-то код в jQuery-ui.custom.js

var instance = $.data( this, fullName );
if ( instance ) {
    instance.option( options || {} )._init();
}

Итак, если вы Нарисуйте диаграмму с плагином jquery-ui после его вытянутого Используйте новые данные, чтобы обновить его, вам нужно сделать это в _init (), чтобы обновить свою диаграмму. Если вы просто что -то отобразите и не будете обновлять их полностью, _create () удовлетворит ваши потребности.

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