Есть ли хороший способ прикрепить объекты JavaScript к элементам HTML? - PullRequest
91 голосов
/ 10 сентября 2009

Я хочу связать объект JavaScript с элементом HTML. Есть ли простой способ сделать это?

Я заметил HTML DOM определяет метод setAttribute и похоже, что он определен для произвольного имени атрибута. Однако это может установить только строковые значения. (Конечно, вы можете использовать это для хранения ключей в словаре.)

Особенности (хотя меня больше всего интересует общий вопрос):

В частности, у меня есть элементы HTML, представляющие узлы в дереве, и я пытаюсь включить перетаскивание, но событие перетаскивания jQuery даст мне только перетаскиваемые элементы.

Обычным шаблоном для получения информации для обработчиков событий является создание элементов HTML одновременно с созданием объектов JavaScript, а затем определение обработчиков событий путем закрытия этих объектов JavaScript - однако это тоже не работает хорошо в этом случае (у меня мог бы быть глобальный объект, который заполняется, когда начинается перетаскивание ... но это чувствует себя немного противным).

Ответы [ 2 ]

96 голосов
/ 10 сентября 2009

JavaScript-объектам могут быть назначены произвольные свойства, для этого нет ничего особенного, что вам нужно сделать. Это включает в себя элементы DOM; хотя такое поведение не является частью стандарта DOM, оно относится к самым первым версиям JavaScript и является абсолютно надежным.

var div= document.getElementById('nav');
div.potato= ['lemons', 3];
42 голосов
/ 10 сентября 2009

Вы смотрели на метод jQuery data () ? Вы можете назначить сложные объекты элементу, если хотите, или использовать этот метод для хранения ссылки на объект (или некоторые другие данные) как минимум.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...