когда вызывается destroy () пользовательского интерфейса jQuery? - PullRequest
1 голос
/ 18 августа 2011

Я понял, что при разработке виджета jQuery UI нужно переопределить команду destroy и вызвать super.destroy или destroy для любых вложенных виджетов. Но когда называть / уничтожать? Это когда-либо вызывается автоматически магическим путем фреймворком jQueryUI? Или он должен вызываться клиентским программистом (используя мой потрясающий виджет)?

Например, скажем, у меня есть лайтбокс (fancybox), который отображает аккордеон (). Скажем, аккордеон создается в обратном вызове onStart от fancybox - когда появится лайтбокс. Должен ли аккордеон ('разрушать') вызываться в обратном вызове on-lightbox-close? Кажется ненужным ...

1 Ответ

4 голосов
/ 18 августа 2011

destroy вызывается вами , когда вы хотите уничтожить виджет.

Он также вызывается пользовательским интерфейсом, когда вы .remove() элемент из DOM, который был "widgetized. "

Что касается вашего конкретного варианта использования, это зависит.Будет ли один и тот же экземпляр лайтбокса повторно открыт в любой момент в будущем на протяжении всего срока действия загрузки страницы?Если это так, уничтожение только добавит накладные расходы, так как следующий показ лайтбокса потребует «повторной виджеты».Если нет, то уничтожение не оставит память без причины.(это предполагает, что закрытие вашего лайтбокса не приводит к удалению элементов из DOM)

...