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);
        });
    }
}

Напоминаю, что методjQuery.data() не манипулирует атрибутами HTML, а работает со своим реестром, и лишь при отсутствии данных в своём реестре пытается заполучить атрибут data-*.

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

Last updated