Как правильно дестроить самописный плагин jQuery?

Исходная ситуация: имеем некоторый самописный плагин, который создает виджет внутри указанного ему элементе. Функции плагина вешаются на клики создаваемых кнопок, keyup-ы создаваемых инпутов и т.п, кроме того - на ряд событий, которые происходят вне элемента плагина - например document.on('keyup')

Вызов: $('селектор').мой_плагин.(конфигурация)

Поскольку предполагается, что виджет нужно периодически уничтожать и создавать заново (с новой конфигурацией), я делаю метод с условным названием destoy

Вызов: $('селектор').мой_плагин.('destroy')

В destroy я снимаю обработчик $(document).off('keyup') и прочих "внешних" элементов. А потом делаю $('селектор *').remove();

Достаточно ли второй строки для того, чтобы не потекла память? jQuery при вызове remove убирает всё сама? Или сперва всё-таки следует снять все обработчики и с "внутренних" элементов? Напомню: хэндлеры - это функции в плагине, а события возникают на элементах, которые создал сам плагин внутри элемента. Они же и удаляются вызовом, который описан выше.
  • Вопрос задан
  • 2501 просмотр
Пригласить эксперта
Ответы на вопрос 1
@PaulJE
$(window).unbind('.PLUGIN_NAME');
$(document).unbind('.PLUGIN_NAME');
$this.removeData('PLUGIN_NAME');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы