Я хочу использовать .data()
в моем приложении. Примеры полезны, но я не понимаю однако, где значения хранятся.
Я осматриваю веб-страницу с Firebug и как только .data () сохраняет объект к dom элементу, я не вижу изменения в Firebug (ни один HTML или Dom вкладки).
Я пытался посмотреть на источник jQuery, но это очень усовершенствовано для моего знания JavaScript, и я потерял меня.
Таким образом, вопрос:
Где делают значения, сохраненные jQuery.data () на самом деле, идут? Я могу осмотреть/определить местоположение/перечислить/отладить их использующий инструмент?
Взгляните на исходник для этого.
При беглом взгляде кажется, что он хранит данные в переменной cache
, которая создается в строке 2.
Edit:
Вот быстрая демонстрация, которая находит данные в кэше: http://jsfiddle.net/CnET9/
Вы также можете сбросить $.cache
в консоль и исследовать его вручную.
Вы можете проверить это, просто вызвав .data ()
без параметров, например:
$("div").data("thing", "value");
console.log($("div").data());
//or...
console.log($.data($("div").get(0)));
Что касается «где» , он хранится в глобальном объекте кеша jQuery под ключом, который представляет ваш элемент. Вызов .data ()
действительно возвращает jQuery.data (yourDomElement)
, или добавляйте ключ к нему, если вы вызывали из него конкретное значение.