Шрифт:
При вызове третьим способом функция
$
может принимать необязательный второй аргумент. В нем можно передать объект Document
, чтобы указать документ, которым должны быть связаны элементы. (Если, к примеру, предполагается, что создаваемые элементы будут вставлены в элемент <iframe>,
необходимо явно указать объект документа этого фрейма.) Или передать объект во втором аргументе. В этом случае предполагается, что свойства объекта определяют имена и значения HTML-атрибутов, которые должны быть установлены во вновь созданном элементе. Но если объект будет содержать свойства с такими именами, как «css», «html», «text», «width», «height», «offset», «val» или «data», или свойства с именами, совпадающими с именами методов регистрации обработчиков событий в библиотеке jQuery, она будет вызывать методы с этими именами для вновь созданного элемента и передавать им значения соответствующих свойств. (Методы, такие как css, html
и text
рассматриваются в разделе 19.2, а методы регистрации обработчиков событий - в разделе 19.4). Например:
var img = $("<img/>", // Создать новый элемент <img>
{ src:url, //с этим HTML-атрибутом,
css: {borderWidth:5}, // этим CSS-стилем
click: handleClick // и этим обработчиком события.
}):
Наконец, при четвертом способе вызова функции
$
передается функция. В этом случае указанная вами функция будет вызвана, когда документ будет полностью загружен и дерево DOM документа будет готово к выполнению операций. Это версия функции onLoad
, представленной в примере 13.5, реализованная в библиотеке jQuery. Очень часто можно встретить jQuery-программы, реализованные в виде анонимных функций, объявляемых в вызове функции jQuery
:
jQuery(function { // Будет вызвана по окончании загрузки документа
// Здесь находится весь программный код, использующий jQuery
}):
Иногда можно увидеть вызов $(f), оформленный в старом и более явном стиле:
$(document).ready(f).
Функция, передаваемая
jQuery
, будет вызвана со ссылкой this
, указывающей на объект document
, и функцией jQuery в качестве единственного аргумента. Это означает, что вы можете удалить глобальное определение функции $ и по-прежнему использовать этот удобный псевдоним локально, как показано ниже:
jQuery.noConflict; // Восстановить оригинальное значение $
jQuery(function($) { // Использовать $ как локальный псевдоним функции jQuery
// Здесь находится весь программный код, использующий jQuery
});
Функции, зарегистрированные с помощью
$
, будут вызваны библиотекой jQuery, когда будет возбуждено событие «DOMContentLoaded» (раздел 13.3.4) или, если это событие не поддерживается, когда будет возбуждено событие «load». То есть когда документ будет загружен и полностью разобран, но внешние ресурсы, такие как изображения, еще могут быть не загружены. Если функцию передать в вызов $
после того, как дерево DOM будет готово, она будет вызвана немедленно, перед тем как $
вернет управление. Кроме того, библиотека jQuery использует функцию
jQuery
как собственное пространство имен и определяет в нем множество вспомогательных функций и свойств. Одной из таких вспомогательных функций является функция jQuery.noConflict
, упоминавшаяся выше. В числе других функций общего назначения можно назвать функцию jQuery.each
, предназначенную для выполнения итераций, jQuery.parseJSON
– для синтаксического анализа данных в формате JSON. Перечень вспомогательных функций общего назначения приводится в разделе 19.7, а другие вспомогательные функции из библиотеки jQuery описываются на протяжении всей главы. Терминология jQuery
Давайте остановимся, чтобы определить некоторые важные термины, которые будут встречаться на протяжении этой главы:
«функция jQuery»
Функция jQuery - это значение
jQuery
или $. Эта функция создает объекты jQuery
, регистрирует обработчики, которые вызываются, когда дерево DOM будет готово к выполнению операций, а также служит пространством имен библиотеки jQuery. Я обычно использую имя $
. Поскольку она служит пространством имен, функция jQuery может также называться «глобальным объектом jQuery», но очень важно не путать ее с «объектом jQuery
». «объект jQuery»
Объект
jQuery
– это объект, возвращаемый функцией jQuery. Объект jQuery
представляет множество элементов документа и может также называться «результатом функции jQuery», «множеством jQuery» или «обернутым набором». «выбранные элементы»
Когда функции jQuery передается CSS-селектор, она возвращает объект
jQuery
, представляющий множество элементов документа, соответствующих этому селектору. При описании методов объекта jQuery
я часто буду употреблять фразу «выбранные элементы», ссылаясь на элементы множества. Например, при описании метода attr
я мог бы сказать: «метод attr
устанавливает HTML-атрибуты выбранных элементов». Вместо более точной, но трудно читаемой фразы: «метод attr
устанавливает HTML-атрибуты элементов в объекте jQuery
, относительно которого он был вызван». Обратите внимание, что слово «выбранных» относится к CSS-селектору и не имеет никакого отношения к элементам, выбираемым пользователем. «функция библиотеки jQuery»
Функция библиотеки jQuery - это функция, такая как
jQuery.noConflict,
которая определена в пространстве имен функции jQuery. Функции библиотеки jQuery могут также упоминаться как «статические методы». «метод jQuery»
Метод jQuery- это метод объекта
jQuery
, возвращаемого функцией jQuery. Наиболее важной частью библиотеки jQuery являются мощные методы, которые она определяет.