jQuery добавляет странный атрибут к узлам - PullRequest
6 голосов
/ 23 июля 2010

Я использую IE8 и jQuery 1.4.2. Моя веб-страница больше не отображается правильно, и быстрый просмотр отладчика в HTML показывает, что каждый элемент теперь имеет новый атрибут с именем «jQuery1279875396122», значение которого представляет собой небольшое целое число, очевидно уникальное для каждого узла.

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

Я не знаю, связано ли это с моей проблемой рендеринга, но я никогда не замечал этого раньше, в IE8 или любом другом браузере. Может кто-нибудь объяснить, что это за атрибуты?

1 Ответ

11 голосов
/ 23 июля 2010

jQuery использует эти свойства "expando" для отслеживания данных, связанных с элементами.jQuery использует свой API данных для обработки событий плюс любые общие данные, которые вы можете привязать к элементу (используя $.data).

Свойство (jQuery1279875396122) будет иметь значение, связанное с позицией в jQuery.cache.

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


Например, когда вы привязываете обработчик события к элементу, например, так:

jQuery('div').click(doSomething);

Функция doSomething будет сохранена в jQuery.cache и, на элементарном уровне, ее позиция (илискорее позиция объекта, которая ссылается на него) будет присвоена свойству jQuery1279875396122 элемента.jQuery по-прежнему будет использовать собственный API браузера для привязки к событию элемента, но при его запуске jQuery выполнит поиск (в jQuery.cache) и вызовет правильные обработчики.

EDIT: Просто чтобы бытьПонятно, что эти свойства не вызывают беспокойства.Вы должны ожидать увидеть их на всех элементах, которые имеют какие-либо данные, связанные через jQuery (включая обработчики событий).Я был бы очень удивлен, если бы это было причиной вашей проблемы с рендерингом.

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