Просматривая исходный код jQuery, кажется, что @Neal почти прав. Похоже, что с использованием синтаксиса
$(htmlCode, config);
эквивалентно звонку:
$(htmlCode).attr(config, true);
где true
- это (недокументированный?) Параметр, указывающий .attr()
на вызов функций jQuery, указанных в ключах config
, ЕСЛИ они перечислены в $.attrFn
. Список $.attrFn
(по крайней мере, в jQuery 1.6.4) включает следующие функции:
val, css, html, текст, данные, ширина, высота, смещение, размытие, фокус, фокусировка, фокусировка, загрузка, изменение размера, прокрутка, выгрузка, щелчок, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter , отпуск мыши, изменить, выбрать, отправить, нажатие клавиши, нажатие клавиши, нажатие клавиши, ошибка
Таким образом, объект config
может содержать либо ключи, представляющие имена атрибутов с их значениями (по умолчанию), либо любые из имен функций, перечисленных выше, с их первым аргументом. Я думаю, что у Resig есть опечатка, когда он показывает addClass
как ключ в своем объекте конфигурации, потому что, как вы заметили, это просто создает атрибут с именем «addclass».