Data реестр

Если по какой-то причине вы ещё не знакомы с data(), советую перечитать главу Data-атрибуты и ознакомиться с официальной документацией.

В разрезе разработки плагинов нам следует запомнить следующее — метод $.data() дает возможность вести реестр данных, который будут привязаны к какому-либо элементу. Таким образом, все данные плагинов лучше хранить в этом реестре. Т.е. если вам надо сохранить состояние плагина — используйте data(), если необходим кэш — используйте data(), если вам необходимо сохранить … ну, думаю, понятно. Приведу ещё примерчик, связанный с инициализацией:

function() { // функция init
    var init = $(this).data('mySimplePlugin');
    if (init) {
        return this;
    } else {
        $(this).data('mySimplePlugin', true);
        return this.on('click.mySimplePlugin', function(){
            $(this).css('color', options.color);
        });
    }
}

Надо бы не забыть рассказать про obj[jQuery.expando] = uuid и jQuery._data(element), а так же про утечки памяти, но наверное не сегодня.

Last updated