JavaScript. Подробное руководство, 6-е издание, стр. 323

Наконец, запомните, что появление всех событий архитектуры Ajax в библиотеке jQuery можно предотвратить, присвоив параметру

<b>global</b>
значение false. Несмотря на обескураживающее имя параметра
<b>global</b>
, присваивание ему значения false предотвращает возбуждение событий не только в глобальном масштабе, но и в объекте context.

19.7. Вспомогательные функции

Библиотека jQuery определяет множество вспомогательных функций (и два свойства), которые могут вам пригодиться в ваших программах. Как вы увидите в списке ниже, для многих из этих функций теперь имеются эквиваленты в стандарте ECMAScript 5 (ES5). Функции в библиотеке jQuery были созданы еще до появления стандарта ES5 и действуют во всех броузерах. Ниже в алфавитном порядке перечислены вспомогательные функции:

<b>jQuery.browser</b>

Свойство

<b>browser</b>
является не функцией, а объектом, который можно использовать для определения типа броузера (раздел 13.4.5). Если сценарий выполняется в IE, свойство
<b>msie</b>
этого объекта будет иметь значение true. В Firefox и родственных ему броузерах значение true будет иметь свойство
<b>mozilla</b>
. В Safari и Chrome значение true будет иметь свойство
<b>webkit</b>
, а в броузере Opera значение true будет иметь свойство
<b>opera</b>
. В дополнение к этим свойствам объект
<b>browser</b>
имеет также свойство
<b>version</b>
, содержащее номер версии броузера. Приема определения типа броузера лучше стараться избегать, насколько это возможно, тем не менее это свойство можно использовать обхода ошибок, характерных для разных броузеров, как показано ниже:

<b>if ($.browser.mozilla &amp;&amp; parselnt($.browser.version) &lt; 4) {</b>

<b>  // Здесь обрабатывается гипотетическая ошибка в Firefox...</b>

<b>}</b>

<b>jQuery.contains()</b>

Эта функция принимает в аргументах два элемента документа. Она возвращает true, если первый элемент содержит второй, иначе возвращает значение false.

<b>jQuery.each()</b>

В отличие от метода

<b>each(),</b>
который выполняет итерации только по объектам
<b>jQuery</b>
, вспомогательная функция
<b>jQuery.each()</b>
способна выполнять итерации по элементам массива или свойствам объекта. В первом аргументе она принимает массив или объект, по которому выполняются итерации. Во втором аргументе принимается функция, которая должна быть вызвана для каждого элемента массива или свойства объекта. Этой функции передаются два аргумента: индекс элемента массива или имя свойства объекта и значение элемента массива или свойства объекта. Значение ссылки this в этой функции совпадает со значением второго аргумента. Если функция вернет false,
<b>jQuery.each()</b>
сразу же вернет управление, не завершив итерации. Функция
<b>jQuery.each()</b>
всегда возвращает значение первого аргумента.

Перечисление свойств функцией

<b>jQuery.each()</b>
выполняется в том же порядке, что и в обычном цикле
<b>for/in</b>
, т.е. в итерациях участвуют все перечислимые свойства, включая унаследованные. Перечисление элементов массива функцией
<b>jQuery.each()</b>
выполняется в порядке следования их индексов, и она не пропускает неопределенные элементы в разреженных массивах.

<b>jQuery.extend()</b>

Эта функция принимает объекты в своих аргументах. Она копирует свойства из второго и всех последующих объектов в первый объект, затирая все одноименные свойства в первом объекте. Она пропускает все свойства, имеющие значение undefined или null. Если передать ей только один объект, свойства этого объекта будут скопированы в сам объект jQuery. Возвращаемым значением функции является объект, в который копировались свойства. Если в первом аргументе передать значение true, будет выполнено глубокое, или рекурсивное, копирование: второй аргумент будет дополнен свойствами третьего (и всех последующих) объектов.

Эту функцию удобно использовать для создания копий объектов и объединения объектов с параметрами с настройками по умолчанию:

<b>var clone = jQuery.extend({}, original);</b>

<b>var options = jQuery.extend({}, default_options, user_options); jQuery.globalEval()</b>

Эта функция выполняет строку с программным кодом на языке JavaScript в глобальном контексте, как если бы она была содержимым элемента

<b>&lt;script&gt;.</b>
(В действительности эта функция создает элемент
<b>&lt;script&gt;</b>
и временно вставляет его в документ.)

<b>jQuery.grep()</b>

Эта функция похожа на метод

<b>filter()</b>
объекта
<b>Array</b>
, определяемый стандартом ES5. В первом аргументе она принимает массив, а во втором - функцию-предикат и вызывает эту функцию для каждого элемента массива, передавая ей значение и индекс элемента. Функция
<b>jQuery.grep()</b>
возвращает новый массив, содержащий только те элементы аргумента-массива, для которых функция-предикат вернула значение true (или другое значение, которое оценивается как истинное). Если в третьем аргументе передать функции
<b>jQuery.grep()</b>
значение true, она будет инвертировать возвращаемое значение функции-предиката и вернет массив элементов, для которых функция-предикат вернула ложное значение.

<b>jQuery.inArray()</b>

Эта функция похожа на метод

<b>indexOf()</b>
объекта
<b>Array</b>
, определяемый стандартом ES5. В первом аргументе она принимает произвольное значение, а во втором - массив (или объект, подобный массиву) и возвращает индекс первого элемента в массиве, имеющего это значение, или -1, если указанное значение отсутствует в массиве.

<b>jQuery.isArray()</b>

Возвращает true, если аргумент является объектом

<b>Array</b>
.

<b>jQuery.isEmptyObject()</b>

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

<b>jQuery.isFunction()</b>