<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQuery и другое... &#187; документация jQuery</title>
	<atom:link href="http://www.linkexchanger.su/tag/dokumentaciya-jquery/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linkexchanger.su</link>
	<description>css, html, php, javascript, jQuery, ajax ... - решения, примеры, рецепты</description>
	<lastBuildDate>Sun, 08 Jan 2012 13:25:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery. Сборник рецептов (+ CD-ROM)</title>
		<link>http://www.linkexchanger.su/2011/842.html</link>
		<comments>http://www.linkexchanger.su/2011/842.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 09:21:13 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[документация jQuery]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/?p=842</guid>
		<description><![CDATA[В августе в интернет-магазинах должна появиться в продаже книга jQuery. Сборник рецептов (+ CD-ROM). Это второе издание книги, которая вышла в издательстве &#171;БХВ-Петербург&#187; чуть более года назад. Второе издание дорабатывалось мной с учетом замечаний и пожеланий читателей и вновь появившихся возможностей.

Геннадий Самков
jQuery. Сборник рецептов (+ CD-ROM)
Издательство: БХВ-Петербург, 2011 г.
Мягкая обложка, 416 стр.
ISBN 978-5-9775-0732-5
Тираж: 1500 экз.
Формат: [...]]]></description>
			<content:encoded><![CDATA[<p>В августе в интернет-магазинах должна появиться в продаже книга <strong>jQuery. Сборник рецептов (+ CD-ROM)</strong>. Это <strong>второе издание</strong> книги, которая вышла в издательстве &laquo;БХВ-Петербург&raquo; чуть более года назад. Второе издание дорабатывалось мной с учетом замечаний и пожеланий читателей и вновь появившихся возможностей.</p>
<ul style="float: right; width: 200px">
<li>Геннадий Самков</li>
<li>jQuery. Сборник рецептов (+ CD-ROM)</li>
<li>Издательство: БХВ-Петербург, 2011 г.</li>
<li>Мягкая обложка, 416 стр.</li>
<li>ISBN 978-5-9775-0732-5</li>
<li>Тираж: 1500 экз.</li>
<li>Формат: 70&#215;100/16</li>
</ul>
<p><a href="http://www.ozon.ru/context/detail/id/6843919/?partner=lexsu&#038;from=bar" title="jQuery. Сборник рецептов" target="_blank"><img style="border:1px solid #333;" src="http://www.linkexchanger.su/wp-content/uploads/2011/07/jquery2.jpg" alt="jQuery. Сборник рецептов" /></a><span id="more-842"></span></p>
<p><strong>Аннотация:</strong><br />
Книга является сборником решений наиболее часто встречающихся задач при веб-программировании пользовательских интерфейсов с использованием библиотеки jQuery. Рассмотрены практически все методы и вспомогательные функции jQuery, в том числе обеспечивающие взаимодействие jQuery и AJAX. Подробно рассказано о надстройке UI jQuery. Приведено большое количество примеров использования плагинов для jQuery &#8211; создание графиков и диаграмм, фотогалерей, меню, работа с таймерами и cookies, обработка табличных данных и др. Во втором издании в примерах используется библиотека jQuery версий 1.4.4 и 1.5.2, а также надстройка UI jQuery 1.8.9.<br />
Компакт-диск содержит примеры из книги, файлы библиотеки jQuery 1.4.4 и 1.5.2, файлы надстройки UI jQuery 1.8.9, а также файлы расширений сторонних разработчиков.</p>
<p>От себя могу добавить, что книга написана в таком же духе, как и <a href="http://www.linkexchanger.su/2010/115.html">первое издание</a>, т.е. примеры, примеры и еще раз примеры плюс подробные разъяснения&#8230;.</p>
<p><a target="_blank" href="http://mmedia.ozon.ru/multimedia/book_file/1003104287.pdf">Отрывок книги в PDF</a></p>
<p><strong>Полное содержание:</strong></p>
<table border="0" width="100%">
<tr>
<td>Введение</td>
<td>7</td>
</tr>
<tr>
<td>Структура книги</td>
<td>7</td>
</tr>
<tr>
<td>Как работать с книгой</td>
<td>8</td>
</tr>
<tr>
<td>Источники информации</td>
<td>9</td>
</tr>
<tr>
<td>Благодарности</td>
<td>10</td>
</tr>
<tr>
<td>
<h3>ЧАСТЬ I. МЕТОДЫ БИБЛИОТЕКИ JQUERY</h3>
</td>
<td>11</td>
</tr>
<tr>
<td>
<h3>Глава 1. Выбор элементов</h3>
</td>
<td>13</td>
</tr>
<tr>
<td>1.1. Базовые правила</td>
<td>13</td>
</tr>
<tr>
<td>1.2. Выбор элементов с учетом иерархии</td>
<td>20</td>
</tr>
<tr>
<td>1.3. Основные фильтры</td>
<td>24</td>
</tr>
<tr>
<td>1.4. Фильтрация по содержимому</td>
<td>30</td>
</tr>
<tr>
<td>1.5. Фильтры видимых и невидимых элементов</td>
<td>34</td>
</tr>
<tr>
<td>1.6. Селекторы атрибутов</td>
<td>36</td>
</tr>
<tr>
<td>1.7. Фильтры элементов форм</td>
<td>40</td>
</tr>
<tr>
<td>1.8. Фильтры состояния элементов форм</td>
<td>43</td>
</tr>
<tr>
<td>1.9. Фильтры элементов-потомков</td>
<td>47</td>
</tr>
<tr>
<td>
<h3>Глава 2. Атрибуты элементов</h3>
</td>
<td>53</td>
</tr>
<tr>
<td>2.1. Управление атрибутами элементов</td>
<td>53</td>
</tr>
<tr>
<td>2.2. Работа с атрибутом class</td>
<td>57</td>
</tr>
<tr>
<td>2.3. Работа с HTML и текстом</td>
<td>59</td>
</tr>
<tr>
<td>2.4. Работа с атрибутом value</td>
<td>61</td>
</tr>
<tr>
<td>
<h3>Глава 3. Визуальные эффекты</h3>
</td>
<td>67</td>
</tr>
<tr>
<td>3.1. Как показывать и скрывать элементы</td>
<td>67</td>
</tr>
<tr>
<td>3.2. Эффекты &laquo;скольжения&raquo; и &laquo;затухания&raquo;</td>
<td>70</td>
</tr>
<tr>
<td>3.3. Создание анимации</td>
<td>74</td>
</tr>
<tr>
<td>3.4. Эффекты UI jQuery</td>
<td>79</td>
</tr>
<tr>
<td>
<h3>Глава 4. Работа с CSS-свойствами</h3>
</td>
<td>84</td>
</tr>
<tr>
<td>4.1. Как получать и устанавливать значения CSS-свойств элементов</td>
<td>84</td>
</tr>
<tr>
<td>4.2. Ширина и высота элементов</td>
<td>88</td>
</tr>
<tr>
<td>4.3. Позиционирование элементов</td>
<td>90</td>
</tr>
<tr>
<td>
<h3>Глава 5. Работа с данными в jQuery</h3>
</td>
<td>94</td>
</tr>
<tr>
<td>5.1. Сохранение и извлечение данных</td>
<td>94</td>
</tr>
<tr>
<td>
<h3>Глава 6. Манипуляции над элементами</h3>
</td>
<td>98</td>
</tr>
<tr>
<td>6.1. Изменение содержимого элементов</td>
<td>98</td>
</tr>
<tr>
<td>6.2. Как вставлять элементы в DOM</td>
<td>101</td>
</tr>
<tr>
<td>6.3. Замена, удаление и копирование элементов</td>
<td>111</td>
</tr>
<tr>
<td>
<h3>Глава 7. Перемещение по элементам</h3>
</td>
<td>118</td>
</tr>
<tr>
<td>7.1. Поиск нужных элементов в DOM</td>
<td>118</td>
</tr>
<tr>
<td>7.2. Фильтрация элементов набора</td>
<td>128</td>
</tr>
<tr>
<td>7.3. Прочие методы</td>
<td>138</td>
</tr>
<tr>
<td>
<h3>Глава 8. События и их обработка</h3>
</td>
<td>144</td>
</tr>
<tr>
<td>8.1. События документа</td>
<td>144</td>
</tr>
<tr>
<td>8.2. Назначение, удаление и вызов событий</td>
<td>146</td>
</tr>
<tr>
<td>8.3. События мыши, клавиатуры, браузера и форм</td>
<td>156</td>
</tr>
<tr>
<td>
<h3>Глава 9. Взаимодействие jQuery и AJAX</h3>
</td>
<td>165</td>
</tr>
<tr>
<td>9.1. Сокращенные методы</td>
<td>165</td>
</tr>
<tr>
<td>9.2. Вспомогательные функции $.ajax() и $ajaxSetup()</td>
<td>178</td>
</tr>
<tr>
<td>9.3. События AJAX</td>
<td>187</td>
</tr>
<tr>
<td>9.4. Полезные вспомогательные функции</td>
<td>192</td>
</tr>
<tr>
<td>
<h3>Глава 10. Полезные вспомогательные функции и методы jQuery</h3>
</td>
<td>195</td>
</tr>
<tr>
<td>10.1. Некоторые операции с массивами и объектами в jQuery</td>
<td>195</td>
</tr>
<tr>
<td>10.2. Некоторые операции с наборами элементов в jQuery</td>
<td>208</td>
</tr>
<tr>
<td>10.3. Другие полезные вспомогательные функции</td>
<td>214</td>
</tr>
<tr>
<td>
<h3>ЧАСТЬ II. РАСШИРЕНИЯ ДЛЯ БИБЛИОТЕКИ JQUERY</h3>
</td>
<td>219</td>
</tr>
<tr>
<td>
<h3>Глава 11. Меню для веб-сайта</h3>
</td>
<td>221</td>
</tr>
<tr>
<td>11.1. Плагин jQuery Superfish</td>
<td>221</td>
</tr>
<tr>
<td>
<h3>Глава 12. Работа с таблицами</h3>
</td>
<td>230</td>
</tr>
<tr>
<td>12.1. Плагин jqGrid</td>
<td>230</td>
</tr>
<tr>
<td>
<h3>Глава 13. Графики и диаграммы</h3>
</td>
<td>250</td>
</tr>
<tr>
<td>13.1. Плагин jqPlot</td>
<td>250</td>
</tr>
<tr>
<td>
<h3>Глава 14. AJAX-формы</h3>
</td>
<td>262</td>
</tr>
<tr>
<td>14.1. Плагин jQuery Form</td>
<td>262</td>
</tr>
<tr>
<td>14.2. Плагин jQuery Validate</td>
<td>267</td>
</tr>
<tr>
<td>14.3. Плагин jQuery Uploadify</td>
<td>273</td>
</tr>
<tr>
<td>
<h3>Глава 15. Фотогалерея для сайта</h3>
</td>
<td>282</td>
</tr>
<tr>
<td>15.1. Фотогалерея FancyBox</td>
<td>282</td>
</tr>
<tr>
<td>
<h3>Глава 16. Несколько полезных плагинов</h3>
</td>
<td>297</td>
</tr>
<tr>
<td>16.1. jQuery Cookie</td>
<td>297</td>
</tr>
<tr>
<td>16.2. jQuery Timers</td>
<td>299</td>
</tr>
<tr>
<td>16.3. jQuery Cluetip</td>
<td>302</td>
</tr>
<tr>
<td>
<h3>Глава 17. UI jQuery — виджеты</h3>
</td>
<td>308</td>
</tr>
<tr>
<td>17.1. Виджет Accordion</td>
<td>308</td>
</tr>
<tr>
<td>17.2. Виджет Datepicker</td>
<td>318</td>
</tr>
<tr>
<td>17.3. Виджет Dialog</td>
<td>329</td>
</tr>
<tr>
<td>17.4. Виджет Progressbar</td>
<td>337</td>
</tr>
<tr>
<td>17.5. Виджет Slider</td>
<td>340</td>
</tr>
<tr>
<td>17.6. Виджет Tabs</td>
<td>346</td>
</tr>
<tr>
<td>17.7. Виджет Button</td>
<td>356</td>
</tr>
<tr>
<td>17.8. Виджет Autocomplete</td>
<td>361</td>
</tr>
<tr>
<td>
<h3>Глава 18. UI jQuery — взаимодействие с элементами страницы</h3>
</td>
<td>370</td>
</tr>
<tr>
<td>18.1. Draggable — перемещение элементов</td>
<td>370</td>
</tr>
<tr>
<td>18.2. Droppable — &laquo;сброс&raquo; элементов</td>
<td>379</td>
</tr>
<tr>
<td>18.3. Resizable — изменение размеров элементов</td>
<td>386</td>
</tr>
<tr>
<td>18.4. Selectable — выбор элементов</td>
<td>392</td>
</tr>
<tr>
<td>18.5. Sortable — сортировка элементов</td>
<td>399</td>
</tr>
<tr>
<td>Приложение. Описание компакт-диска</td>
<td>409</td>
</tr>
<tr>
<td>Литература</td>
<td>411</td>
</tr>
<tr>
<td>Предметный указатель</td>
<td>412</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2011/842.html/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>jQuery. Сборник рецептов</title>
		<link>http://www.linkexchanger.su/2010/115.html</link>
		<comments>http://www.linkexchanger.su/2010/115.html#comments</comments>
		<pubDate>Fri, 22 Jan 2010 09:51:08 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[документация jQuery]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2010/115.html</guid>
		<description><![CDATA[Несколько дней назад в интернет-магазинах появилась в продаже книга &#171;jQuery. Сборник рецептов&#187;. Книга вышла в издательстве &#171;БХВ-Петербург&#187;. Написана она мной &#8211; автором этого блога. См. второе издание >>

Геннадий Самков
jQuery. Сборник рецептов (+ CD-ROM)
Издательство: БХВ-Петербург, 2010 г.
Мягкая обложка, 410 стр.
ISBN 978-5-9775-0495-9
Тираж: 1500 экз.
Формат: 70&#215;100/16


Аннотация:
Книга является сборником решений наиболее часто встречающихся задач при веб-программировании пользовательских интерфейсов с [...]]]></description>
			<content:encoded><![CDATA[<p>Несколько дней назад в интернет-магазинах появилась в продаже книга <strong>&laquo;jQuery. Сборник рецептов&raquo;</strong>. Книга вышла в издательстве &laquo;БХВ-Петербург&raquo;. Написана она мной &#8211; автором этого блога. <a style="color:#f00; font-weight:bold;" href="http://www.linkexchanger.su/2011/842.html">См. второе издание >></a></p>
<ul style="float: right; width: 200px">
<li>Геннадий Самков</li>
<li>jQuery. Сборник рецептов (+ CD-ROM)</li>
<li>Издательство: БХВ-Петербург, 2010 г.</li>
<li>Мягкая обложка, 410 стр.</li>
<li>ISBN 978-5-9775-0495-9</li>
<li>Тираж: 1500 экз.</li>
<li>Формат: 70&#215;100/16</li>
</ul>
<p><a href="http://www.ozon.ru/context/detail/id/4934639/?partner=lexsu&#038;from=bar" title="jQuery. Сборник рецептов" target="_blank"><img style="border:1px solid #333;" src="http://www.linkexchanger.su/wp-content/uploads/2010/01/book2.jpg" alt="jQuery. Сборник рецептов" /></a><span id="more-115"></span></p>
<p><strong>Аннотация:</strong><br />
Книга является сборником решений наиболее часто встречающихся задач при веб-программировании пользовательских интерфейсов с использованием библиотеки jQuery. Рассмотрены практически все методы и вспомогательные функции jQuery, в том числе обеспечивающие взаимодействие jQuery и AJAX. Подробно рассказано о надстройке UI jQuery и приведены описания всех настроек для виджетов, входящих в ее состав, что позволяет использовать книгу в качестве справочника. Приведено большое количество примеров использования наиболее популярных плагинов для jQuery &#8211; создание графиков и диаграмм, фотогалерей, навигационных меню, всплывающих подсказок, работа с веб-формами, таймерами и cookies, обработка табличных данных. Компакт-диск содержит примеры, разобранные в книге, файлы библиотеки jQuery версий 1.2.6 и 1.3.2, файлы надстройки UI jQuery, а также файлы рассмотренных в книге расширений сторонних разработчиков.</p>
<p>От себя могу добавить, что книга написана в таком же духе, как и предыдущая: &laquo;<a href="http://www.linkexchanger.su/2009/87.html">AJAX. Программирование для Интернета</a>&laquo;, т.е. примеры, примеры и еще раз примеры плюс подробные разъяснения&#8230;.</p>
<p><strong>Полное содержание:</strong></p>
<table border="0" width="100%">
<tr>
<td>Введение</td>
<td>1</td>
</tr>
<tr>
<td>Структура книги</td>
<td>1</td>
</tr>
<tr>
<td>Как работать с книгой</td>
<td>2</td>
</tr>
<tr>
<td>Источники информации</td>
<td>3</td>
</tr>
<tr>
<td>Благодарности</td>
<td>4</td>
</tr>
<tr>
<td>
<h3>ЧАСТЬ I. МЕТОДЫ БИБЛИОТЕКИ JQUERY</h3>
</td>
<td>5</td>
</tr>
<tr>
<td>
<h3>Глава 1. Выбор элементов</h3>
</td>
<td>7</td>
</tr>
<tr>
<td>1.1. Базовые правила</td>
<td>7</td>
</tr>
<tr>
<td>1.2. Выбор элементов с учетом иерархии</td>
<td>14</td>
</tr>
<tr>
<td>1.3. Основные фильтры</td>
<td>18</td>
</tr>
<tr>
<td>1.4. Фильтрация по содержимому</td>
<td>24</td>
</tr>
<tr>
<td>1.5. Фильтры видимых и невидимых элементов</td>
<td>28</td>
</tr>
<tr>
<td>1.6. Фильтры атрибутов</td>
<td>29</td>
</tr>
<tr>
<td>1.7. Фильтры элементов форм</td>
<td>35</td>
</tr>
<tr>
<td>1.8. Фильтры состояния элементов форм</td>
<td>37</td>
</tr>
<tr>
<td>1.9. Фильтры элементов-потомков</td>
<td>42</td>
</tr>
<tr>
<td>
<h3>Глава 2. Атрибуты элементов</h3>
</td>
<td>48</td>
</tr>
<tr>
<td>2.1. Управление атрибутами элементов</td>
<td>48</td>
</tr>
<tr>
<td>2.2. Работа с атрибутом class</td>
<td>53</td>
</tr>
<tr>
<td>2.3. Работа с HTML и текстом</td>
<td>54</td>
</tr>
<tr>
<td>2.4. Работа с атрибутом value</td>
<td>57</td>
</tr>
<tr>
<td>
<h3>Глава 3. Визуальные эффекты</h3>
</td>
<td>64</td>
</tr>
<tr>
<td>3.1. Как показывать и скрывать элементы</td>
<td>64</td>
</tr>
<tr>
<td>3.2. Эффекты &laquo;скольжения&raquo; и &laquo;затухания&raquo;</td>
<td>67</td>
</tr>
<tr>
<td>3.3. Создание анимации</td>
<td>71</td>
</tr>
<tr>
<td>3.4. Эффекты UI jQuery</td>
<td>76</td>
</tr>
<tr>
<td>
<h3>Глава 4. Работа с CSS-свойствами</h3>
</td>
<td>81</td>
</tr>
<tr>
<td>4.1. Как получать и устанавливать значения CSS-свойств элементов</td>
<td>81</td>
</tr>
<tr>
<td>4.2. Ширина и высота элементов</td>
<td>85</td>
</tr>
<tr>
<td>4.3. Позиционирование элементов</td>
<td>88</td>
</tr>
<tr>
<td>
<h3>Глава 5. Некоторые методы ядра библиотеки jQuery</h3>
</td>
<td>92</td>
</tr>
<tr>
<td>5.1. Примеры работы с объектом jQuery</td>
<td>92</td>
</tr>
<tr>
<td>5.2. Сохранение и извлечение данных</td>
<td>97</td>
</tr>
<tr>
<td>
<h3>Глава 6. Манипуляции над элементами</h3>
</td>
<td>101</td>
</tr>
<tr>
<td>6.1. Изменение содержимого элементов</td>
<td>101</td>
</tr>
<tr>
<td>6.2. Как вставлять элементы в DOM</td>
<td>103</td>
</tr>
<tr>
<td>6.3. Замена, удаление и копирование элементов</td>
<td>113</td>
</tr>
<tr>
<td>
<h3>Глава 7. Перемещение по элементам</h3>
</td>
<td>120</td>
</tr>
<tr>
<td>7.1. Поиск нужных элементов в DOM</td>
<td>120</td>
</tr>
<tr>
<td>7.2. Фильтрация элементов набора</td>
<td>131</td>
</tr>
<tr>
<td>7.3. Перемещение по цепочке вызовов</td>
<td>138</td>
</tr>
<tr>
<td>
<h3>Глава 8. События и их обработка</h3>
</td>
<td>142</td>
</tr>
<tr>
<td>8.1. Готовность документа</td>
<td>142</td>
</tr>
<tr>
<td>8.2. Назначение, удаление и вызов событий</td>
<td>144</td>
</tr>
<tr>
<td>8.3. Взаимодействие с элементами</td>
<td>152</td>
</tr>
<tr>
<td>8.4. События</td>
<td>155</td>
</tr>
<tr>
<td>
<h3>Глава 9. Взаимодействие jQuery и AJAX</h3>
</td>
<td>161</td>
</tr>
<tr>
<td>9.1. Самое простое</td>
<td>161</td>
</tr>
<tr>
<td>9.2. GET- и POST-запросы</td>
<td>166</td>
</tr>
<tr>
<td>9.3. Вспомогательная функция $.ajax(options)</td>
<td>174</td>
</tr>
<tr>
<td>9.4. Для чего нужна функция $.ajaxSetup(options)</td>
<td>180</td>
</tr>
<tr>
<td>9.5. События AJAX</td>
<td>183</td>
</tr>
<tr>
<td>
<h3>Глава 10. Утилиты jQuery</h3>
</td>
<td>190</td>
</tr>
<tr>
<td>10.1. Некоторые операции с массивами и объектами в jQuery</td>
<td>190</td>
</tr>
<tr>
<td>
<h3>ЧАСТЬ II. РАСШИРЕНИЯ ДЛЯ БИБЛИОТЕКИ JQUERY</h3>
</td>
<td>201</td>
</tr>
<tr>
<td>
<h3>Глава 11. Меню для веб-сайта</h3>
</td>
<td>203</td>
</tr>
<tr>
<td>11.1. Плагин jQuery Multi Level Menu</td>
<td>203</td>
</tr>
<tr>
<td>11.2. Плагин jQuery Drop Line Menu</td>
<td>207</td>
</tr>
<tr>
<td>11.3. Плагин jQuery TreeView</td>
<td>210</td>
</tr>
<tr>
<td>11.4. Делаем меню похожее на Accordion</td>
<td>216</td>
</tr>
<tr>
<td>
<h3>Глава 12. Работа с таблицами</h3>
</td>
<td>219</td>
</tr>
<tr>
<td>12.1. Плагин jQuery DataTables</td>
<td>219</td>
</tr>
<tr>
<td>
<h3>Глава 13. Графики и диаграммы</h3>
</td>
<td>229</td>
</tr>
<tr>
<td>13.1. Плагин jqPlot</td>
<td>229</td>
</tr>
<tr>
<td>
<h3>Глава 14. AJAX-формы</h3>
</td>
<td>242</td>
</tr>
<tr>
<td>14.1. Плагин jQuery Autocomplete</td>
<td>242</td>
</tr>
<tr>
<td>14.2. Плагин jQuery Form</td>
<td>252</td>
</tr>
<tr>
<td>14.3. Плагин jQuery Validate</td>
<td>257</td>
</tr>
<tr>
<td>14.4. Плагин jQuery Uploadify</td>
<td>264</td>
</tr>
<tr>
<td>
<h3>Глава 15. Фотогалереи для сайта</h3>
</td>
<td>274</td>
</tr>
<tr>
<td>15.1. Фотогалерея FancyBox</td>
<td>274</td>
</tr>
<tr>
<td>15.2. Простая фотогалерея</td>
<td>282</td>
</tr>
<tr>
<td>
<h3>Глава 16. Несколько полезных плагинов</h3>
</td>
<td>286</td>
</tr>
<tr>
<td>16.1. jQuery Cookie</td>
<td>286</td>
</tr>
<tr>
<td>16.2. jQuery Corner</td>
<td>288</td>
</tr>
<tr>
<td>16.3. jQuery Timers</td>
<td>293</td>
</tr>
<tr>
<td>16.4. jQuery Cluetip</td>
<td>297</td>
</tr>
<tr>
<td>
<h3>Глава 17. UI jQuery — виджеты</h3>
</td>
<td>303</td>
</tr>
<tr>
<td>17.1. Виджет Accordion</td>
<td>303</td>
</tr>
<tr>
<td>17.2. Виджет Datepicker</td>
<td>314</td>
</tr>
<tr>
<td>17.3. Виджет Dialog</td>
<td>326</td>
</tr>
<tr>
<td>17.4. Виджет Progressbar</td>
<td>334</td>
</tr>
<tr>
<td>17.5. Виджет Slider</td>
<td>337</td>
</tr>
<tr>
<td>17.6. Виджет Tabs</td>
<td>343</td>
</tr>
<tr>
<td>
<h3>Глава 18. UI jQuery — взаимодействие с элементами страницы</h3>
</td>
<td>354</td>
</tr>
<tr>
<td>18.1. Draggable — перемещение элементов</td>
<td>354</td>
</tr>
<tr>
<td>18.2. Droppable — &laquo;сброс&raquo; элементов</td>
<td>364</td>
</tr>
<tr>
<td>18.3. Resizable — изменение размеров элементов</td>
<td>371</td>
</tr>
<tr>
<td>18.4. Selectable — выбор элементов</td>
<td>377</td>
</tr>
<tr>
<td>18.5. Sortable — сортировка элементов</td>
<td>385</td>
</tr>
<tr>
<td>Литература</td>
<td>397</td>
</tr>
<tr>
<td>Приложение. Описание компакт-диска</td>
<td>398</td>
</tr>
<tr>
<td>Предметный указатель</td>
<td>400</td>
</tr>
<tr>
<td>Оглавление</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2010/115.html/feed</wfw:commentRss>
		<slash:comments>74</slash:comments>
		</item>
		<item>
		<title>jQuery UI: Effects &#8211; еще о визуальных эффектах.</title>
		<link>http://www.linkexchanger.su/2008/64.html</link>
		<comments>http://www.linkexchanger.su/2008/64.html#comments</comments>
		<pubDate>Wed, 23 Jul 2008 23:00:24 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[animate]]></category>
		<category><![CDATA[Effects]]></category>
		<category><![CDATA[анимация]]></category>
		<category><![CDATA[документация jQuery]]></category>
		<category><![CDATA[эффекты]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/64.html</guid>
		<description><![CDATA[Неплохими темпами развивается библиотека jQuery. Разработчики уделили внимание визуальным эффектам пользовательского интерфейса. В результате мы получили файл  effects.core.js, который сам по себе обладает необходимой функциональностью лучших расширений для jQuery, таких как Color Animation, Class Transformation и Advansed Easing и, кроме того, целый набор различных визуальных эффектов, которые могут быть использованы как автономно, так и [...]]]></description>
			<content:encoded><![CDATA[<p>Неплохими темпами развивается <strong>библиотека jQuery</strong>. Разработчики уделили внимание визуальным эффектам пользовательского интерфейса. В результате мы получили файл  <strong>effects.core.js</strong>, который сам по себе обладает необходимой функциональностью лучших расширений для jQuery, таких как Color Animation, Class Transformation и Advansed Easing и, кроме того, целый набор различных визуальных эффектов, которые могут быть использованы как автономно, так и с <strong>show</strong>, <strong>hide</strong>, <strong>toggle</strong>.<span id="more-64"></span></p>
<p>Итак, давайте для начала посмотрим, как могут быть использованы эффекты, а далее я приведу примеры всех доступных эффектов.</p>
<h2 style="color: #cc6600">show(effect, options, [speed], [callback])</h2>
<p>Возвращает: jQuery<br />
Использует эффект для элемента, чтобы <strong>показать</strong> этот элемент, если первый аргумент является строкой с названием соответствующего эффекта.</p>
<p>В примере применяется эффект slide чтобы показать элемент div, если совершен клик на параграфе.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click(function () {
  $(&quot;div&quot;).show(&quot;slide&quot;, {}, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/_show.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/_show.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Аргументы:</h3>
<p><strong>effect</strong> &#8211; String &#8211; Название эффекта.<br />
<strong>options</strong> &#8211; Hash &#8211; Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.<br />
<strong>speed (Optional)</strong> &#8211; String, Number &#8211; Строка, представляющая одно из трех предопределенных значений скорости эффекта (&laquo;slow&raquo;, &laquo;normal&raquo;, или &laquo;fast&raquo;) или число миллисекунд, в течение которых выполняется анимация (например 1000).<br />
<strong>callback (Optional)</strong> &#8211; Function &#8211; Функция, которая может быть вызвана при завершении эффекта.</p>
<h2 style="color: #cc6600">hide(effect, options, [speed], [callback])</h2>
<p>Возвращает: jQuery<br />
Использует эффект для элемента, чтобы <strong>скрыть</strong> этот элемент, если первый аргумент является строкой с названием соответствующего эффекта.</p>
<p>В примере применяется эффект slide чтобы скрыть элемент div, если совершен клик на параграфе.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click(function () {
  $(&quot;div&quot;).hide(&quot;slide&quot;, {}, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/_hide.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/_hide.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Аргументы:</h3>
<p><strong>effect</strong> &#8211; String &#8211; Название эффекта.<br />
<strong>options</strong> &#8211; Hash &#8211; Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.<br />
<strong>speed (Optional)</strong> &#8211; String, Number &#8211; Строка, представляющая одно из трех предопределенных значений скорости эффекта (&laquo;slow&raquo;, &laquo;normal&raquo;, или &laquo;fast&raquo;) или число миллисекунд, в течение которых выполняется анимация (например 1000).<br />
<strong>callback (Optional)</strong> &#8211; Function &#8211; Функция, которая может быть вызвана при завершении эффекта.</p>
<h2 style="color: #cc6600">toggle(effect, options, [speed], [callback])</h2>
<p>Возвращает: jQuery<br />
Использует эффект для элемента, чтобы <strong>переключать</strong> этот элемент, если первый аргумент является строкой с названием соответствующего эффекта.</p>
<p>В примере применяется эффект slide чтобы переключать элемент div, если совершен клик на параграфе.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click(function () {
  $(&quot;div&quot;).toggle(&quot;slide&quot;, {}, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/_toggle.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/_toggle.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Аргументы:</h3>
<p><strong>effect</strong> &#8211; String &#8211; Название эффекта.<br />
<strong>options</strong> &#8211; Hash &#8211; Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.<br />
<strong>speed (Optional)</strong> &#8211; String, Number &#8211; Строка, представляющая одно из трех предопределенных значений скорости эффекта (&laquo;slow&raquo;, &laquo;normal&raquo;, или &laquo;fast&raquo;) или число миллисекунд, в течение которых выполняется анимация (например 1000).<br />
<strong>callback (Optional)</strong> &#8211; Function &#8211; Функция, которая может быть вызвана при завершении эффекта.</p>
<h2 style="color: #cc6600">effect(effect, options, [speed], [callback])</h2>
<p>Возвращает: jQuery<br />
Использует эффект для элемента (без использования логики show/hide).</p>
<p>В примере применяется эффект explode, если на элементе совершен клик.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).click(function () {
  $(this).effect(&quot;explode&quot;, {}, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/_effect.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/_effect.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Аргументы:</h3>
<p><strong>effect</strong> &#8211; String &#8211; Название эффекта.<br />
<strong>options</strong> &#8211; Hash &#8211; Объект, состоящий из пар ключ/значение, включающий определение опций для этого эффекта.<br />
<strong>speed (Optional)</strong> &#8211; String, Number &#8211; Строка, представляющая одно из трех предопределенных значений скорости эффекта (&laquo;slow&raquo;, &laquo;normal&raquo;, или &laquo;fast&raquo;) или число миллисекунд, в течение которых выполняется анимация (например 1000).<br />
<strong>callback (Optional)</strong> &#8211; Function &#8211; Функция, которая может быть вызвана при завершении эффекта.</p>
<p>Мы узнали как можно использовать эффекты, но пока использовали только парочку из них. Давайте теперь подробнее познакомимся с перечнем эффектов и узнаем, какие из них можно использовать автономно, а какие можно применять с show, side и toggle.<br />
Разумеется для начала нам потребуется подключить файл библиотеки jQuery, файл effects.core.js и файл нужного эффекта. Выглядеть это будет примерно так:</p>
<pre class="brush: jscript;">&lt;script src=&quot;js/jquery-1.2.6.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/effects.core.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
// подключаем файл нужного эффекта
&lt;script src=&quot;js/effects.bounce.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Познакомимся сначала с эффектами, которые можно использовать автономно (без логики show/hide). Таких эффектов четыре &#8211; <strong>bounce</strong>, <strong>highlight</strong>, <strong>shake</strong>, <strong>transfer</strong>.</p>
<h2 style="color: #cc6600">Bounce</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).effect(&quot;bounce&quot;, { times: 3 }, 300);
});
$(&quot;#div2&quot;).click(function () {
  $(this).effect(&quot;bounce&quot;, { times: 7,
      direction: 'right',
      distance: 50 }, 300);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/bounce.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/bounce.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>direction</strong> &#8211; String &#8211; по умолчанию: up<br />
&laquo;up&raquo;, &laquo;down&raquo;, &laquo;left&raquo;, &laquo;right&raquo;<br />
<strong>distance</strong> &#8211; Integer &#8211; по умолчанию: 20<br />
расстояние в пикселах<br />
<strong>times</strong> &#8211; Integer &#8211; по умолчанию: 5<br />
количество раз</p>
<h2 style="color: #cc6600">Highlight</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).effect(&quot;highlight&quot;, {}, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).effect(&quot;highlight&quot;, {color: '#ff0000'}, 500);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/highlight.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/highlight.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>color</strong> &#8211; String &#8211; по умолчанию: #ffff99<br />
цвет подсветки</p>
<h2 style="color: #cc6600">Shake</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).effect(&quot;shake&quot;, { times: 3 }, 300);
});
$(&quot;#div2&quot;).click(function () {
  $(this).effect(&quot;shake&quot;, {
      times: 4,
      direction: 'down',
      distance: 10 }, 300);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/shake.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/shake.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>direction</strong> &#8211; String &#8211; по умолчанию: left<br />
&laquo;up&raquo;, &laquo;down&raquo;, &laquo;left&raquo;, &laquo;right&raquo;<br />
<strong>distance</strong> &#8211; Integer &#8211; по умолчанию: 20<br />
расстояние в пикселах<br />
<strong>times</strong> &#8211; Integer &#8211; по умолчанию: 3<br />
количество раз</p>
<h2 style="color: #cc6600">Transfer</h2>
<pre class="brush: jscript;">$(&quot;div.green1&quot;).click(function () {
  $(this).effect(&quot;transfer&quot;, { to: &quot;div.red&quot; }, 2000);
});
$(&quot;div.green2&quot;).click(function () {
  $(this).effect(&quot;transfer&quot;, { className: &quot;transfer2&quot;,
      to: &quot;div.red&quot; }, 800);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/transfer.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/transfer.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>className</strong> &#8211; String<br />
Имя класса (опционально), которое можно назначить отображению трансформируемого элемента вместо стандартного &laquo;ui-effects-transfer&raquo;.<br />
<strong>to</strong> &#8211; String<br />
jQuery селектор, определяющий элемент в который происходит трансформация.</p>
<p>Ну а теперь перечислим эффекты, которые можно использовать вместе с Show/Hide/Toggle:</p>
<h2 style="color: #cc6600">Blind</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).hide(&quot;blind&quot;, {direction:&quot;vertical&quot;}, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).hide(&quot;blind&quot;, {direction:&quot;horizontal&quot;}, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/blind.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/blind.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>direction</strong> &#8211; String &#8211; по умолчанию: vertical<br />
&laquo;vertical&raquo; или &laquo;horizontal&raquo;</p>
<h2 style="color: #cc6600">Clip</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).hide(&quot;clip&quot;, {direction:&quot;vertical&quot;}, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).hide(&quot;clip&quot;, {direction:&quot;horizontal&quot;}, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/clip.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/clip.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>direction</strong> &#8211; String &#8211; по умолчанию: vertical<br />
&laquo;vertical&raquo; или &laquo;horizontal&raquo;</p>
<h2 style="color: #cc6600">Drop</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).hide(&quot;drop&quot;, { direction: &quot;left&quot; }, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).hide(&quot;drop&quot;, { direction: &quot;down&quot; }, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/drop.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/drop.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>direction</strong> &#8211; String &#8211; по умолчанию: left<br />
&laquo;left&raquo;, &laquo;right&raquo;, &laquo;up&raquo;, &laquo;down&raquo;</p>
<h2 style="color: #cc6600">Explode</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).hide(&quot;explode&quot;, {}, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).hide(&quot;explode&quot;, { pieces: 25 }, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/explode.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/explode.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>pieces</strong> &#8211; Integer &#8211; по умолчанию: 9<br />
количество штук.</p>
<h2 style="color: #cc6600">Fold</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).hide(&quot;fold&quot;, {}, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).hide(&quot;fold&quot;, { size: 50 }, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/fold.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/fold.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>size</strong> &#8211; Integer &#8211; по умолчанию: 15<br />
размер в пикселах.</p>
<h2 style="color: #cc6600">Puff</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).hide(&quot;puff&quot;, {}, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).hide(&quot;puff&quot;, { percent: 700 }, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/puff.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/puff.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>percent</strong> &#8211; Integer &#8211; по умолчанию: 150<br />
Количество процентов.</p>
<h2 style="color: #cc6600">Slide</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).hide(&quot;slide&quot;, { direction: &quot;left&quot; }, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).hide(&quot;slide&quot;, { direction: &quot;down&quot; }, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/slide.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/slide.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>direction</strong> &#8211; String &#8211; по умолчанию: left<br />
&laquo;left&raquo;, &laquo;right&raquo;, &laquo;up&raquo;, &laquo;down&raquo;</p>
<h2 style="color: #cc6600">Scale</h2>
<pre class="brush: jscript;">$(&quot;#div0&quot;).click(function () {
  $(this).hide(&quot;scale&quot;, {}, 1000);
});
$(&quot;#div1&quot;).click(function () {
  $(this).effect(&quot;scale&quot;, { percent: 0 }, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).effect(&quot;scale&quot;, {
        percent:200,
        direction:'horizontal'}, 1000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/scale.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/scale.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>direction</strong> &#8211; String &#8211; по умолчанию: both<br />
&#8216;both&#8217;, &#8216;vertical&#8217;, &#8216;horizontal&#8217;<br />
<strong>from</strong> &#8211; Object<br />
Начальное состояние. Обычно не требуется. { height: .., width: .. }<br />
<strong>origin</strong> &#8211; Array &#8211; по умолчанию: ['middle','center']<br />
Точка исчезновения, по умолчанию для show/hide<br />
<strong>percent</strong> &#8211; Integer &#8211; по умолчанию: 0/100<br />
Количество процентов.</p>
<h2 style="color: #cc6600">Pulsate</h2>
<pre class="brush: jscript;">$(&quot;#div1&quot;).click(function () {
  $(this).effect(&quot;pulsate&quot;, { times: 2 }, 1000);
});
$(&quot;#div2&quot;).click(function () {
  $(this).effect(&quot;pulsate&quot;, { times: 9 }, 50);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects_core/pulsate.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects_core/pulsate.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>Опции:</h3>
<p><strong>times</strong> &#8211; Integer &#8211; по умолчанию: 5<br />
Количество пульсаций.</p>
<blockquote><p>Все использованные в примерах файлы, как и файл <strong>effects.core.js</strong> можно скачать в разделе <strong><a href="http://www.linkexchanger.su/download">download</a></strong>.</p></blockquote>
<p>Надеюсь, что эта статья принесет пользу и поможет многим сделать свои приложения более динамичными.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/64.html/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>jQuery FAQ &#8211; часто задаваемые вопросы по jQuery.</title>
		<link>http://www.linkexchanger.su/2008/62.html</link>
		<comments>http://www.linkexchanger.su/2008/62.html#comments</comments>
		<pubDate>Thu, 03 Jul 2008 07:15:14 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[FAQ jQuery]]></category>
		<category><![CDATA[документация jQuery]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/62.html</guid>
		<description><![CDATA[Эта статья является чуть-чуть вольным переводом аналогичного раздела на сайте разработчиков библиотеки jQuery. Речь пойдет о казалось бы совсем простых вещах, но не всегда очевидных с первого взгляда, поэтому эта информация наверняка может кому-то пригодится.
Как выбирать элементы, используя class или id?
Этот код выбирает элемент с id &#171;myDivId&#187;. Поскольку id является уникальным, это выражение всегда выбирает [...]]]></description>
			<content:encoded><![CDATA[<p>Эта статья является чуть-чуть вольным переводом аналогичного раздела на сайте разработчиков библиотеки jQuery. Речь пойдет о казалось бы совсем простых вещах, но не всегда очевидных с первого взгляда, поэтому эта информация наверняка может кому-то пригодится.<span id="more-62"></span></p>
<h2 style="color: #cc6600">Как выбирать элементы, используя class или id?</h2>
<p>Этот код выбирает элемент с id &laquo;myDivId&raquo;. Поскольку id является уникальным, это выражение всегда выбирает один элемент. Или ничего не выбирает, если элемента с таким id не существует.</p>
<pre class="brush: jscript;">$('#myDivId');</pre>
<p>Следующий код выбирает элемент(ы) с классом &laquo;myCssClass&raquo;. Поскольку любое количество элементов может иметь этот класс, это выражение будет выбирать любое количество элементов.</p>
<pre class="brush: jscript;">$('.myCssClass');</pre>
<p>Выбранный элемент может быть присвоен переменной javascript, например так:</p>
<pre class="brush: jscript;">var myDivElement = $('#myDivId');</pre>
<p>Обычно выбранные элементы задействуются другими функциями jQuery:</p>
<pre class="brush: jscript;">// получаем значение элемента
var myValue = $('#myDivId').val();
// устанавливаем значение элемента
$('#myDivId').val(&quot;hello world&quot;);</pre>
<p>Выбирая элементы по имени класса, лучше использовать составной селектор. Если отбор идет по id, то логично использовать именно id.</p>
<pre class="brush: jscript;">$('#myDivId'); // лучше
$('div#myDivId'); // хуже
$('span.myCssClass'); // лучше
$('.myCssClass'); // хуже</pre>
<h2 style="color: #cc6600">Как проверить имеет ли элемент специфический класс?</h2>
<p>Вы можете использовать метод <strong>is()</strong> (см. <a href="http://www.linkexchanger.su/2008/55.html">jQuery API: Traversing &#8211; обход DOM</a>) вместе с подходящим селектором.</p>
<pre class="brush: jscript;">if ( $('#myDiv').is('.pretty') )
   $('#myDiv').show();</pre>
<p>Заметьте, что этот метод позволяет Вам проверять также и другие вещи. Например Вы можете проверить, скрыт ли элемент (при использовании :hidden селектора).</p>
<pre class="brush: jscript;">if ( $('#myDiv').is(':hidden') )
   $('#myDiv').show();</pre>
<p>Иногда также бывает вопрос: имеет ли jQuery hasClass (см. <a href="http://www.linkexchanger.su/2008/54.html">jQuery API: Attributes &#8211; атрибуты</a>) метод?</p>
<blockquote><p>Заметьте, что hasClass был добавлен начиная с версии 1.2, чтобы обрабатывать наиболее распространенное использование метода is().</p></blockquote>
<pre class="brush: jscript;">$(&quot;div&quot;).click(function(){
  if ( $(this).hasClass(&quot;protected&quot;) )
    $(this)
      .animate({ left: -10 })
      .animate({ left: 10 })
      .animate({ left: -10 })
      .animate({ left: 10 })
      .animate({ left: 0 });
});</pre>
<p>В этом коде добавляется некая анимация для элемента(ов) с классом protected. Обратите внимание, что имя класса тут записывается без точки.</p>
<h2 style="color: #cc6600">Как проверить существование элемента?</h2>
<p>Вы можете использовать свойство <strong>length</strong> набора jQuery, возвращенного селектором.</p>
<pre class="brush: jscript;">if ( $('#myDiv').length )
  $('#myDiv').show();</pre>
<p>Заметьте, что вовсе не всегда необходимо проверять, существует ли элемент. Следующий код показал бы элемент, если он существует, и не сделал бы ничего (и никакой ошибки бы не возникло), если это неверно.</p>
<pre class="brush: jscript;">$('#myDiv').show();</pre>
<h2 style="color: #cc6600">Как определить состояние переключаемого элемента?</h2>
<p>Вы можете проверить состояние, используя селекторы :visible или :hidden (см. <a href="http://www.linkexchanger.su/2008/52.html">jQuery API: Selectors &#8211; селекторы jQuery: фильтры контента, visibility-фильтры, фильтры атрибутов, child-фильтры</a>).</p>
<pre class="brush: jscript;">var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');</pre>
<p>Если Вы хотите воздейстовать на элемент, основываясь на его видимости, просто включите &laquo;:visible&raquo; или &laquo;:hidden&raquo; в выражение селектора. Например:</p>
<pre class="brush: jscript;">$('#myDiv:visible').animate({left: '+=200px'}, 'slow');</pre>
<h2 style="color: #cc6600">Как выбирать элементы, которые имеют специфические символы в id?</h2>
<p>Например, это может быть обычным для некоторых фреймворков, генерирующих уникальные id, которые имеют специальные символы в них (такие как &#8216;.&#8217; или &#8216;[..]&#8216;). Проблема состоит в том, что эти символы имеют специальное значение в CSS. Как поступать в таких случаях, смотрите на следующих примерах:</p>
<pre class="brush: jscript;">$(&quot;#some.id&quot;) // это не работает!
$(&quot;#some\\.id&quot;) // а это работает!
$(&quot;#some[id]&quot;) // это не работает!
$(&quot;#some\\[id\\]&quot;) // а это работает!</pre>
<h2 style="color: #cc6600">Как разрешать/запрещать использование элемента?</h2>
<p>Вы можете разрешать/запрещать элемент, устанавливая атрибут &#8216;disabled&#8217; в значение &#8216;disabled&#8217; (чтобы запретить использование элемента) или присвоить тому же атрибуту пустое значение &raquo;, или же просто удалить атрибут &#8216;disabled&#8217; (чтобы разрешить использование элемента). Код может выглядеть примерно следующим образом:</p>
<pre class="brush: jscript;">// запрещаем использование элемента #x
$(&quot;#x&quot;).attr(&quot;disabled&quot;,&quot;disabled&quot;);
// разрешаем  использование элемента #x
$(&quot;#x&quot;).attr(&quot;disabled&quot;,&quot;&quot;);
// разрешаем  использование элемента #x
$(&quot;#x&quot;).removeAttr(&quot;disabled&quot;);</pre>
<p>Вы можете попробовать следующий пример:<br />
<iframe src="http://www.linkexchanger.su/jquery_faq/disabled.html" style="border: medium none " height="60" width="420"></iframe><br />
и посмотреть его исходный код:</p>
<pre class="brush: xml;">&lt;select id=&quot;x&quot; style=&quot;width:200px;&quot;&gt;
  &lt;option&gt;Один&lt;/option&gt;
  &lt;option&gt;Два&lt;/option&gt;
  &lt;option&gt;Три&lt;/option&gt;
&lt;/select&gt;
&lt;input type=&quot;button&quot; value=&quot;Disable&quot; onclick=&quot;$('#x').attr('disabled','disabled')&quot;/&gt;
&lt;input type=&quot;button&quot; value=&quot;Enable&quot; onclick=&quot;$('#x').removeAttr('disabled')&quot;/&gt;</pre>
<h2 style="color: #cc6600">Как отметить/снять отметку с элемента checkbox?</h2>
<p>Вы можете отметить/снять отметку c элемента checkbox, устанавливая атрибуту &#8216;checked&#8217; значение &#8216;checked&#8217; (чтобы отметить элемент) или установить атрибуту &#8216;checked&#8217; пустое значение &laquo;&raquo; (чтобы снять отметку). Пример кода приведен ниже:</p>
<pre class="brush: jscript;">// отмечаем checkbox с id=&quot;c&quot;
$(&quot;#c&quot;).attr(&quot;checked&quot;, &quot;checked&quot;);
// снимаем отметку checkbox'а с id=&quot;c&quot;
$(&quot;#c&quot;).attr(&quot;checked&quot;,&quot;&quot;);</pre>
<p>Вы можете попробовать следующий пример:<br />
<iframe src="http://www.linkexchanger.su/jquery_faq/checkbox.html" style="border: medium none " height="60" width="420"></iframe><br />
и посмотреть его исходный код:</p>
<pre class="brush: xml;">&lt;label&gt;&lt;input type=&quot;checkbox&quot; id=&quot;c&quot;/&gt;это подопытный checkbox&lt;/label&gt;
&lt;input type=&quot;button&quot; value=&quot;Check&quot; onclick='$(&quot;#c&quot;).attr(&quot;checked&quot;,&quot;checked&quot;)'/&gt;
&lt;input type=&quot;button&quot; value=&quot;Uncheck&quot; onclick='$(&quot;#c&quot;).attr(&quot;checked&quot;,&quot;&quot;)'/&gt;</pre>
<h2 style="color: #cc6600">Как получать значения выбранной опции элемента select?</h2>
<p>Элементы select обычно имеют два значения, к которым нужно обратиться. Это значение атрибута value соответствующего элемента option и его текстовое значение. Для примера возьмем следующий код:</p>
<pre class="brush: xml;">&lt;select id=&quot;myselect&quot;&gt;
  &lt;option value=&quot;1&quot;&gt;Mr&lt;/option&gt;
  &lt;option value=&quot;2&quot;&gt;Mrs&lt;/option&gt;
  &lt;option value=&quot;3&quot;&gt;Ms&lt;/option&gt;
  &lt;option value=&quot;4&quot;&gt;Dr&lt;/option&gt;
  &lt;option value=&quot;5&quot;&gt;Prof&lt;/option&gt;
&lt;/select&gt;</pre>
<p>Вот так можно получить значение атрибута value, выбранной опции:</p>
<pre class="brush: jscript;">$(&quot;select#myselect&quot;).val();</pre>
<p>А вот так можно получить текст выбранной опции:</p>
<pre class="brush: jscript;">$(&quot;#myselect option:selected&quot;).text();</pre>
<p>Вы можете попробовать следующий пример:<br />
<iframe src="http://www.linkexchanger.su/jquery_faq/select.html" style="border: medium none " height="60" width="420"></iframe><br />
и посмотреть его исходный код:</p>
<pre class="brush: xml;">&lt;select id=&quot;myselect&quot;&gt;
  &lt;option value=&quot;1&quot;&gt;Mr&lt;/option&gt;
  &lt;option value=&quot;2&quot;&gt;Mrs&lt;/option&gt;
  &lt;option value=&quot;3&quot;&gt;Ms&lt;/option&gt;
  &lt;option value=&quot;4&quot;&gt;Dr&lt;/option&gt;
  &lt;option value=&quot;5&quot;&gt;Prof&lt;/option&gt;
&lt;/select&gt;
&lt;input type=&quot;button&quot; value=&quot;Get Value&quot; onclick=&quot;alert($('#myselect').val())&quot;/&gt;
&lt;input type=&quot;button&quot; value=&quot;Get Text Value&quot; onclick=&quot;alert($('#myselect option:selected').text())&quot;/&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/62.html/feed</wfw:commentRss>
		<slash:comments>138</slash:comments>
		</item>
		<item>
		<title>jQuery API: Effects &#8211; эффекты.</title>
		<link>http://www.linkexchanger.su/2008/61.html</link>
		<comments>http://www.linkexchanger.su/2008/61.html#comments</comments>
		<pubDate>Thu, 26 Jun 2008 01:02:54 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[animate]]></category>
		<category><![CDATA[Effects]]></category>
		<category><![CDATA[анимация]]></category>
		<category><![CDATA[документация jQuery]]></category>
		<category><![CDATA[эффекты]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/61.html</guid>
		<description><![CDATA[Сегодня разберем еще один раздел документации jQuery &#8211; раздел, посвященный анимационным эффектам, которые можно создавать с помощью этой библиотеки. Тема довольно большая, но я не стал разбивать ее на несколько статей, потому что интереснее узнать все сразу. Много примеров, которые подгружаются во фреймах, поэтому будьте терпеливы&#8230;
Basics:
show()
возвращает: jQuery
Отображает каждый из элементов набора, если они были скрыты [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня разберем еще один раздел <strong>документации jQuery</strong> &#8211; раздел, посвященный анимационным эффектам, которые можно создавать с помощью этой библиотеки. Тема довольно большая, но я не стал разбивать ее на несколько статей, потому что интереснее узнать все сразу. Много примеров, которые подгружаются во фреймах, поэтому будьте терпеливы&#8230;<span id="more-61"></span></p>
<h2 style="color: #cc6600">Basics:</h2>
<h3>show()</h3>
<p>возвращает: jQuery<br />
Отображает каждый из элементов набора, если они были скрыты через вызов hide() или через display:none в таблице стилей. Действует подобно show(speed,[callback]), только без анимационных эффектов. Если элемент не был скрыт, то ничего не происходит.</p>
<p>Показываем все параграфы, которые были скрыты.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).show();</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/show.html" style="border: medium none " height="60" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/show.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>show(speed, [callback])</h3>
<p>возвращает: jQuery<br />
Отображает все элементы набора с использованием анимационных эффектов. Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации. Высота, ширина и прозрачность каждого элемента набора может быть изменена динамически, с определенной скоростью.</p>
<p>Показываем все скрытые параграфы. Используем в качестве параметра ключевое слово slow. При этом анимация выполняется в течение 600 миллисекунд.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;p&quot;).show(&quot;slow&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/show_speed.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/show_speed.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Показываем все скрытые элементы div по порядку, используя ключевое слово fast. Каждая анимация занимает 200 миллисекунд и по завершении очередной стартует следующая.</p>
<pre class="brush: jscript;">$(&quot;#showr&quot;).click(function () {
  $(&quot;div:eq(0)&quot;).show(&quot;fast&quot;, function () {
    // use callee so don't have to name the function
    $(this).next().show(&quot;fast&quot;, arguments.callee);
  });
});
$(&quot;#hidr&quot;).click(function () {
  $(&quot;div&quot;).hide(2000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/show_speed_callback.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/show_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Аргумент <strong>speed</strong> &#8211; строка или число. Если передается строка, она может принимать предопределенные значения &#8211; &laquo;slow&raquo;, &laquo;normal&raquo; или &laquo;fast&raquo;. Число &#8211; длительность эффекта в миллисекундах, например 1000.<br />
Аргумент <strong>callback</strong> &#8211; функция, вызываемая по завершении эффекта. Выполняется один раз для каждого элемента набора.</p>
<h3>hide()</h3>
<p>возвращает: jQuery<br />
Скрывает каждый из элементов набора, если они отображались. Действует подобно hide(speed, [callback]), но без анимационных эффектов. Если элемент был скрыт &#8211; ничего не происходит.<br />
В примере один параграф скрыт изначально, второй &#8211; скрывается кликом по ссылке.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).hide();
$(&quot;a&quot;).click(function () {
  $(this).hide();
  return false;
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/hide.html" style="border: medium none " height="50" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/hide.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>hide(speed, [callback])</h3>
<p>возвращает: jQuery<br />
Скрывает все элементы набора с использованием анимационных эффектов. Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации. Высота, ширина и прозрачность каждого элемента набора может быть изменена динамически, с определенной скоростью.</p>
<p>Скрываем все видимые параграфы. Используем в качестве параметра ключевое слово slow. При этом анимация выполняется в течение 600 миллисекунд.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;p&quot;).hide(&quot;slow&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/hide_speed.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/hide_speed.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Кликом по кнопке Hide, скрываем все элементы span по порядку, используя ключевое слово fast. Каждая анимация занимает 200 миллисекунд и по завершении очередной стартует следующая.</p>
<pre class="brush: jscript;">$(&quot;#hidr&quot;).click(function () {
  $(&quot;span:last-child&quot;).hide(&quot;fast&quot;, function () {
    // use callee so don't have to name the function
    $(this).prev().hide(&quot;fast&quot;, arguments.callee);
  });
});
$(&quot;#showr&quot;).click(function () {
  $(&quot;span&quot;).show(2000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/hide_speed_callback.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/hide_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Скрываем элементы div по клику на них в течение 2 секунд и когда элемент уже скрыт, удаляем его. Попробуйте очень быстро покликать по div&#8217;ам.</p>
<pre class="brush: jscript;">for (var i = 0; i &lt; 5; i++) {
  $(&quot;&lt;div&gt;&quot;).appendTo(document.body);
}
$(&quot;div&quot;).click(function () {
  $(this).hide(2000, function () {
    $(this).remove();
  });
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/hide_speed_callback2.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/hide_speed_callback2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Аргумент <strong>speed</strong> &#8211; строка или число. Если передается строка, она может принимать предопределенные значения &#8211; &laquo;slow&raquo;, &laquo;normal&raquo; или &laquo;fast&raquo;. Число &#8211; длительность эффекта в миллисекундах, например 1000.<br />
Аргумент <strong>callback</strong> &#8211; функция, вызываемая по завершении эффекта. Выполняется один раз для каждого элемента набора.</p>
<h3>toggle()</h3>
<p>возвращает: jQuery<br />
Переключает отображение каждого из элементов набора. Если они были скрыты &#8211; отображает их и наоборот.</p>
<p>Переключаем параграфы с помощью кнопки.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;p&quot;).toggle();
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/toggle.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/toggle.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Sliding:</h2>
<h3>slideDown(speed, [callback])</h3>
<p>возвращает: jQuery<br />
Открывает все элементы набора, используя изменение высоты элементов. Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации.</p>
<p>Открываем все элементы input, используя эффект &laquo;скольжения вниз&raquo;. Время анимации 1000 мс. Как только анимация выполнена &#8211; вызывается функция, которая изменяет некоторые css-свойства элементов input. А в особенности среднего элемента, которому передается фокус.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).click(function () {
  $(this).css({ borderStyle:&quot;inset&quot;, cursor:&quot;wait&quot; });
  $(&quot;input&quot;).slideDown(1000,function(){
    $(this).css(&quot;border&quot;, &quot;2px red inset&quot;)
           .filter(&quot;.middle&quot;)
           .css(&quot;background&quot;, &quot;yellow&quot;)
           .focus();
    $(&quot;div&quot;).css(&quot;visibility&quot;, &quot;hidden&quot;);
  });
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/slidedown_speed_callback.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/slidedown_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Открываем, &laquo;скользя вниз&raquo;, все элементы div. Для задания времени используем ключевое слово &laquo;slow&raquo;, т.е. открываем медленно.</p>
<pre class="brush: jscript;">$(document.body).click(function () {
  if ($(&quot;div:first&quot;).is(&quot;:hidden&quot;)) {
    $(&quot;div&quot;).slideDown(&quot;slow&quot;);
  } else {
    $(&quot;div&quot;).hide();
  }
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/slidedown_speed_callback2.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/slidedown_speed_callback2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p><strong>slideDown</strong> принимает те же аргументы, что и <strong>show</strong> или <strong>hide</strong>.</p>
<h3>slideUp(speed, [callback])</h3>
<p>возвращает: jQuery<br />
Скрывает все элементы набора, используя изменение высоты элементов. Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации.</p>
<p>Скрываем все параграфы, используя эффект &laquo;скольжения вверх&raquo;. Время анимации 2000 мс. Как только анимация выполнена &#8211; вызывается функция, которая покажет сообщение о том, какой именно параграф был скрыт.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(this).parent().slideUp(&quot;slow&quot;, function () {
    $(&quot;#msg&quot;).text($(&quot;button&quot;, this)
    .text() + &quot; - сделано!&quot;);
  });
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/slideup_speed_callback.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/slideup_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Скрываем, &laquo;скользя вверх&raquo;, все элементы div. Время не задаем. По умолчанию эффект будет выполнен примерно за 400 мс.</p>
<pre class="brush: jscript;">$(document.body).click(function () {
  if ($(&quot;div:first&quot;).is(&quot;:hidden&quot;)) {
    $(&quot;div&quot;).show(&quot;slow&quot;);
  } else {
    $(&quot;div&quot;).slideUp();
  }
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/slideup_speed_callback2.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/slideup_speed_callback2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p><strong>slideUp</strong> принимает те же аргументы, что и <strong>show</strong> или <strong>hide</strong>.</p>
<h3>slideToggle(speed, [callback])</h3>
<p>возвращает: jQuery<br />
Переключает видимость всех элементов набора, используя изменение высоты элементов. Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации.</p>
<p>Скрываем и отображаем все параграфы.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;p&quot;).slideToggle(&quot;slow&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/slidetoggle_speed_callback.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/slidetoggle_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Анимируем элементы div, находящиеся между разделителями.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;div:not(.still)&quot;).slideToggle(&quot;slow&quot;, function () {
    var n = parseInt($(&quot;span&quot;).text(), 10);
    $(&quot;span&quot;).text(n + 1);
  });
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/slidetoggle_speed_callback2.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/slidetoggle_speed_callback2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p><strong>slideToggle</strong> принимает те же аргументы, что и <strong>show</strong> или <strong>hide</strong>.</p>
<h2 style="color: #cc6600">Fading:</h2>
<h3>fadeIn(speed, [callback])</h3>
<p>возвращает: jQuery<br />
Делает видимыми все элементы набора, используя изменение прозрачности элементов. Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации. Только прозрачность элемента может быть использована для этого эффекта, поэтому &laquo;проявляемый&raquo; элемент уже должен иметь какие-либо размеры, т.е. его высота и ширина должны быть определены.</p>
<p>&laquo;Проявляем&raquo; скрытые элементы div один за другим, каждый раз анимационный эффект занимает время примерно в 600 мс.</p>
<pre class="brush: jscript;">$(document.body).click(function () {
  $(&quot;div:hidden:first&quot;).fadeIn(&quot;slow&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/fadein_speed_callback.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/fadein_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>&laquo;Проявляем&raquo; красный блок поверх текста. По завершении этой анимации запускается следующий эффект, который &laquo;проявляет&raquo; тэг span.</p>
<pre class="brush: jscript;">$(&quot;a&quot;).click(function () {
  $(&quot;div&quot;).fadeIn(3000, function () {
    $(&quot;span&quot;).fadeIn(100);
  });
  return false;
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/fadein_speed_callback2.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/fadein_speed_callback2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p><strong>fadeIn</strong> принимает те же аргументы, что и <strong>show</strong> или <strong>hide</strong>.</p>
<h3>fadeOut(speed, [callback])</h3>
<p>возвращает: jQuery<br />
Делает невидимыми все элементы набора, используя изменение прозрачности элементов (эффект &laquo;затухания&raquo;). Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации. Только прозрачность элемента может быть использована для этого эффекта, поэтому скрываемый элемент должен иметь какие-либо размеры, т.е. его высота и ширина должны быть определены.</p>
<p>Скрываем все параграфы, используя эффект &laquo;затухания&raquo;. Продолжительность эффекта примерно 600 мс.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click(function () {
  $(&quot;p&quot;).fadeOut(&quot;slow&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/fadeout_speed_callback.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/fadeout_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Проведите мышью над текстом. Кликните там, где при наведении курсора появится желтый бэкграунд. Это один из нескольких элементов span. По клику на нем он будет скрыт с использованием эффекта &laquo;затухания&raquo;.</p>
<pre class="brush: jscript;">$(&quot;span&quot;).click(function () {
  $(this).fadeOut(1000, function () {
    $(&quot;div&quot;).text(&quot;'&quot; + $(this).text() + &quot;' has faded!&quot;);
    $(this).remove();
  });
});
$(&quot;span&quot;).hover(function () {
    $(this).addClass(&quot;hilite&quot;);
  }, function () {
    $(this).removeClass(&quot;hilite&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/fadeout_speed_callback2.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/fadeout_speed_callback2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p><strong>fadeOut</strong> принимает те же аргументы, что и <strong>show</strong> или<strong> hide</strong>.</p>
<h3>fadeTo(speed, opacity, [callback])</h3>
<p>возвращает: jQuery<br />
Делает невидимыми все элементы набора, используя изменение прозрачности элементов (эффект &laquo;затухания&raquo;) до величины, указанной во втором аргументе. Опционально в аргументе callback может быть передана функция, которая будет вызвана по завершении анимации. Только прозрачность элемента может быть использована для этого эффекта, поэтому скрываемый элемент должен иметь какие-либо размеры, т.е. его высота и ширина должны быть определены.</p>
<p>Кликом на первом параграфе изменяем его прозрачность до 0.33. Эффект длится примерно 600 мс. Второй параграф не меняет прозрачность.</p>
<pre class="brush: jscript;">$(&quot;p:first&quot;).click(function () {
  $(this).fadeTo(&quot;slow&quot;, 0.33);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/fadeto_speed_callback.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/fadeto_speed_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Меняем прозрачность элементов div случайным образом. Длительность эффекта примерно 200 мс.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).click(function () {
  $(this).fadeTo(&quot;fast&quot;, Math.random());
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/fadeto_speed_callback2.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/fadeto_speed_callback2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p><strong>fadeTo</strong> принимает те же аргументы, что и <strong>show</strong> или <strong>hide</strong>. И кроме того второй аргумент <strong>opacity</strong> &#8211; число от 0 до 1, характеризующий &laquo;целевую&raquo; прозрачность элемента.</p>
<h2 style="color: #cc6600">Custom:</h2>
<h3>animate(params, [duration], [easing], [callback])</h3>
<p>возвращает: jQuery<br />
Это функция для построения своей, пользовательской анимации. У этой функции один обязательный аргумент, представляющий собой объект состоящий из пар ключ/значение. В качестве ключа выступает CSS-свойство, которое должно быть анимировано (например: &laquo;height&raquo;, &laquo;top&raquo;, or &laquo;opacity&raquo;).</p>
<blockquote><p>Обратите внимание, что свойства должны быть определены с использованием camel case (т.е. например marginLeft вместо margin-left).</p></blockquote>
<p>В качестве значения выступает &laquo;целевое&raquo; значение соответствующего CSS-свойства. Например, если в качестве значения выступает какая-либо цифра, то соответвующее свойство будет трансформировано из своего текущего состояния, в новое состояние.</p>
<blockquote><p>Обратите внимание, что поддерживаются только свойства, имеющие в качестве значения какие-либо числа (или &laquo;hide&raquo;, &laquo;show&raquo;, &laquo;toggle&raquo;). Например backgroundColor не поддерживается.</p></blockquote>
<p>Начиная с версии jQuery 1.2 можно определять значения свойств, используя &laquo;em&raquo; или %. Также начиная с версии jQuery 1.2 можно использовать &laquo;относительную&raquo; анимацию, т.е. определять значения соответствующего свойства относительно его текущей позиции (используя &laquo;+=&raquo; или &laquo;-=&raquo;) чтобы передвигать элемент в положительную или отрицательную стороны.<br />
Кликните по кнопке, чтобы запустить анимацию для элемента div.</p>
<pre class="brush: jscript;">$(&quot;#go&quot;).click(function(){
  $(&quot;#block&quot;).animate({
    width: &quot;70%&quot;,
    opacity: 0.4,
    marginLeft: &quot;0.6in&quot;,
    fontSize: &quot;3em&quot;,
    borderWidth: &quot;10px&quot;
  }, 1500 );
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/animate_params.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/animate_params.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Пример &laquo;относительной&raquo; анимации. Покликайте несколько раз по кнопкам вправо/влево&#8230;</p>
<pre class="brush: jscript;">$(&quot;#right&quot;).click(function(){
  $(&quot;.block&quot;).animate({&quot;left&quot;: &quot;+=50px&quot;}, &quot;slow&quot;);
});
$(&quot;#left&quot;).click(function(){
  $(&quot;.block&quot;).animate({&quot;left&quot;: &quot;-=50px&quot;}, &quot;slow&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/animate_params2.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/animate_params2.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Аргументы, принимаемые этой функцией:<br />
<strong>params</strong> &#8211; набор атрибутов стилей, которые Вы хотите анимировать.<br />
<strong>duration (Optional)</strong> &#8211; строка, представляющая собой ключевое слово (&laquo;slow&raquo;, &laquo;normal&raquo;, или &laquo;fast&raquo;) или число, указываюее длительность эффекта в миллисекундах.<br />
<strong>easing (Optional)</strong> &#8211; строка, представляющая собой имя эффекта плагина easing. Имеет два встроенных значения &laquo;linear&raquo; и &laquo;swing&raquo;. Используется только с плагином.<br />
<strong>callback (Optional)</strong> &#8211; функция, которая может быть вызвана по завершении анимации каждого элемента набора.</p>
<h3>animate(params, options)</h3>
<p>возвращает: jQuery<br />
Это функция для построения своей, пользовательской анимации. Аргумент <strong>params</strong> представляет собой объект, состоящий из пар ключ/значение. В качестве ключа выступает CSS-свойство, которое должно быть анимировано (например: &laquo;height&raquo;, &laquo;top&raquo;, или &laquo;opacity&raquo;).</p>
<blockquote><p>Обратите внимание, что свойства должны быть определены с использованием camel case (т.е. например marginLeft вместо margin-left).</p></blockquote>
<p>В качестве значения выступает &laquo;целевое&raquo; значение соответствующего CSS-свойства. Например, если в качестве значения выступает какая-либо цифра, то соответвующее свойство будет трансформировано из своего текущего состояния, в новое состояние. Или же если значение представлено в виде строки (&laquo;hide&raquo;, &laquo;show&raquo;, или &laquo;toggle&raquo;), анимация для этого свойства будет создана со значениями по умолчанию.<br />
Отдельно стоит поговорить об аргументе <strong>options</strong>. В нем также может быть передана длительность соответствующего эффекта анимации (как с использованием числовых значений в миллисекундах, так и с помощью клюючевых слов). Также может быть использовано имя эффекта при использовании плагина easing. С помощью опции <strong>complete</strong> может быть вызвана функция, которая будет выполнена по завершении анимации для каждого элемента набора.<br />
Обязательно надо упомянуть о <strong>queue</strong> (добавлено в jQuery 1.2). Он принимает значения true (по умолчанию) или false. Если установить queue:false, это даст возможность выполнить анимационный эффект вне очереди, параллельно со следующим эффектом (если такой есть конечно).</p>
<p><strong><em>Посмотрите следующий пример &#8211; будет намного понятнее.</em></strong><br />
Первая кнопка как раз демонстрирует пример такой параллельной анимации. Некий элемент с идентификатором #block1 должен изменить свою ширину до 90% от возможной, шрифт должен быть установлен в размер 24px и правая рамка должна стать шириной 15px. Обратите внимание, что изменение ширины происходит одновременно с другими двумя эффектами, которые уже следуют друг за другом в порядке очереди.<br />
Вторая кнопка запускает почти такую же анимацию, вот только все эффекты следуют друг за другом строго по очереди.</p>
<pre class="brush: jscript;">$(&quot;#go1&quot;).click(function(){
  $(&quot;#block1&quot;).animate( { width:&quot;90%&quot; },
             { queue:false, duration:3000 } )
    .animate( { fontSize:&quot;24px&quot; }, 1500 )
    .animate( { borderRightWidth:&quot;15px&quot; }, 1500);
});
$(&quot;#go2&quot;).click(function(){
  $(&quot;#block2&quot;).animate( { width:&quot;90%&quot;}, 1000 )
    .animate( { fontSize:&quot;24px&quot; } , 1000 )
    .animate( { borderLeftWidth:&quot;15px&quot; }, 1000);
});
$(&quot;#go3&quot;).click(function(){
  $(&quot;#go1&quot;).add(&quot;#go2&quot;).click();
});
$(&quot;#go4&quot;).click(function(){
  $(&quot;div&quot;).css({width:&quot;&quot;, fontSize:&quot;&quot;, borderWidth:&quot;&quot;});
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/animate_params_queue.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/animate_params_queue.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>stop()</h3>
<p>возвращает: jQuery<br />
Останавливает все выполняющиеся анимационные эффекты для всех элементов набора.</p>
<p>Кликните по кнопке Go, чтобы запустить анимацию. Затем по кнопке Stop, чтобы ее остановить. Ну а клик по кнопке Back запустит другой анимационный эффект &#8211; блок будет двигаться в обратную сторону. Заметьте, что отсчет будет вестить от той позиции в которой блок был остановлен.</p>
<pre class="brush: jscript;">// Запускаем анимацию
$(&quot;#go&quot;).click(function(){
  $(&quot;.block&quot;).animate({left: '+=100px'}, 2000);
});
// Останавливаем анимацию
$(&quot;#stop&quot;).click(function(){
  $(&quot;.block&quot;).stop();
});
// Запускаем в другом направлении
$(&quot;#back&quot;).click(function(){
  $(&quot;.block&quot;).animate({left: '-=100px'}, 2000);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/stop.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/stop.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>queue()</h3>
<p>возвращает: Array<function><br />
Возвращает ссылку на очередь элемента (массив функций).</function></p>
<p>Разберите этот пример. По клику на кнопке мы получаем длину очереди в текущий момент.</p>
<pre class="brush: jscript;">$(&quot;#show&quot;).click(function () {
  var n = $(&quot;div&quot;).queue(&quot;fx&quot;);
  $(&quot;span&quot;).text(&quot;Длина очереди: &quot; + n.length);
});
function runIt() {
  $(&quot;div&quot;).show(&quot;slow&quot;);
  $(&quot;div&quot;).animate({left:'+=200'},2000);
  $(&quot;div&quot;).slideToggle(1000);
  $(&quot;div&quot;).slideToggle(&quot;fast&quot;);
  $(&quot;div&quot;).animate({left:'-=200'},1500);
  $(&quot;div&quot;).hide(&quot;slow&quot;);
  $(&quot;div&quot;).show(1200);
  $(&quot;div&quot;).slideUp(&quot;normal&quot;, runIt);
}
runIt();</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/queue.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/queue.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>queue(callback)</h3>
<p>возвращает: jQuery<br />
Добавляет новую функцию, которая долна быть выполнена, в конец очереди для всех элементов набора.</p>
<p>В примере: очередь пользовательских функций.</p>
<pre class="brush: jscript;">$(document.body).click(function () {
  $(&quot;div&quot;).show(&quot;slow&quot;);
  $(&quot;div&quot;).animate({left:'+=200'},2000);
  $(&quot;div&quot;).queue(function () {
    $(this).addClass(&quot;newcolor&quot;);
    $(this).dequeue();
  });
  $(&quot;div&quot;).animate({left:'-=200'},500);
  $(&quot;div&quot;).queue(function () {
    $(this).removeClass(&quot;newcolor&quot;);
    $(this).dequeue();
  });
  $(&quot;div&quot;).slideUp();
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/queue_callback.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/queue_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>queue(queue)</h3>
<p>возвращает: jQuery<br />
Заменяет очередь для всех элементов набора новой очередью (массив функций).</p>
<p>В примере, по клику на кнопке Stop, устанавливается массив очереди, чтобы удалить текущую очередь. По клику на кнопке Start очередь запускается вновь.</p>
<pre class="brush: jscript;">$(&quot;#start&quot;).click(function () {
  $(&quot;div&quot;).show(&quot;slow&quot;);
  $(&quot;div&quot;).animate({left:'+=200'},5000);
  $(&quot;div&quot;).queue(function () {
    $(this).addClass(&quot;newcolor&quot;);
    $(this).dequeue();
  });
  $(&quot;div&quot;).animate({left:'-=200'},1500);
  $(&quot;div&quot;).queue(function () {
    $(this).removeClass(&quot;newcolor&quot;);
    $(this).dequeue();
  });
  $(&quot;div&quot;).slideUp();
});
$(&quot;#stop&quot;).click(function () {
  $(&quot;div&quot;).queue(&quot;fx&quot;, []);
  $(&quot;div&quot;).stop();
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/queue_queue.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/queue_queue.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>dequeue()</h3>
<p>возвращает: jQuery<br />
Удаляет поставленную в конец очереди функцию, разрешая очереди продолжаться.</p>
<p>В примере dequeue используется, чтобы разрешить очереди продолжиться после использования queue(callback). Попробуйте убрать в примере строчку $(this).dequeue(); и Вы обнаружите, что анимация остановится после срабатывания toggleClass.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;div&quot;).animate({left:'+=200px'}, 2000);
  $(&quot;div&quot;).animate({top:'0px'}, 600);
  $(&quot;div&quot;).queue(function () {
    $(this).toggleClass(&quot;red&quot;);
    $(this).dequeue();
  });
  $(&quot;div&quot;).animate({left:'10px', top:'30px'}, 700);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_effects/dequeue.html" style="border: medium none " height="100" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_effects/dequeue.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>В общем про анимационные эффекты библиотеки jQuery вроде бы все.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/61.html/feed</wfw:commentRss>
		<slash:comments>98</slash:comments>
		</item>
		<item>
		<title>jQuery API: Events &#8211; события. Часть 2.</title>
		<link>http://www.linkexchanger.su/2008/60.html</link>
		<comments>http://www.linkexchanger.su/2008/60.html#comments</comments>
		<pubDate>Tue, 17 Jun 2008 00:00:11 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[документация jQuery]]></category>
		<category><![CDATA[события]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/60.html</guid>
		<description><![CDATA[Повторюсь, что в документации к библиотеке jQuery тема событий и их обработки занимает значительное место. И во второй части мы будем знакомиться с хэлперами. Используя их, Вы сможете как вызывать определенные события, так и связывать с ними некоторые действия&#8230;
Interaction Helpers:
hover(over, out)
возвращает: jQuery
Симулирует hovering &#8211; отслеживание входа указателя мыши в пределы объекта и выхода за его [...]]]></description>
			<content:encoded><![CDATA[<p>Повторюсь, что в <strong>документации к библиотеке jQuery</strong> тема событий и их обработки занимает значительное место. И во второй части мы будем знакомиться с хэлперами. Используя их, Вы сможете как вызывать определенные события, так и связывать с ними некоторые действия&#8230;<span id="more-60"></span></p>
<h2 style="color: #cc6600;">Interaction Helpers:</h2>
<h3>hover(over, out)</h3>
<p>возвращает: jQuery<br />
Симулирует hovering &#8211; отслеживание входа указателя мыши в пределы объекта и выхода за его пределы. Всякий раз, когда указатель мыши оказывается поверх объекта, вызывается функция, переданная в качестве первого аргумента. Аналогично, когда указатель мыши выходит за пределы объекта &#8211; вызывается функция, которая является вторым аргументом.</p>
<p>Например, чтобы добавить специальный стиль для ячейки таблицы над которой находится указатель мыши, можно сделать так:</p>
<pre class="brush: jscript;">$(&quot;td&quot;).hover(
  function () {
    $(this).addClass(&quot;hover&quot;);
  },
  function () {
    $(this).removeClass(&quot;hover&quot;);
  }
);</pre>
<p>В следующем примере в конце каждого элемента списка добавляется три звездочки (конечно в тот момент, когда над ним находится указатель мыши).</p>
<pre class="brush: jscript;">$(&quot;li&quot;).hover(
  function () {
    $(this).append($(&quot;&lt;span&gt; ***&lt;/span&gt;&quot;));
  },
  function () {
    $(this).find(&quot;span:last&quot;).remove();
  }
);</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/hover.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>toggle(fn, fn1)</h3>
<p>возвращает: jQuery<br />
Переключается между двумя функциями, которые по очереди вызываются каждым следующим кликом. Каждый раз, когда клик совершен на выбранном элементе, срабатывает первая функция. Если на том же элементе совершен еще один клик &#8211; срабатывает вторая функция. Каждый следующий клик продолжает переключение между этими двумя функциями. Можно использовать unbind(&laquo;click&raquo;), чтобы отменить действие toggle().</p>
<p>Чтобы добавить специальный стиль для ячейки таблицы по которой был совершен клик, можно сделать так:</p>
<pre class="brush: jscript;">$(&quot;td&quot;).toggle(
  function () {
    $(this).addClass(&quot;selected&quot;);
  },
  function () {
    $(this).removeClass(&quot;selected&quot;);
  }
);</pre>
<p>В следующем примере мы применяем и следующим кликом отменяем стили для каждого элемента списка.</p>
<pre class="brush: jscript;">$(&quot;li&quot;).toggle(
  function () {
    $(this).css(&quot;list-style-type&quot;, &quot;disc&quot;)
      .css(&quot;color&quot;, &quot;blue&quot;);
  },
  function () {
    $(this).css({&quot;list-style-type&quot;:&quot;&quot;, &quot;color&quot;:&quot;&quot;});
  }
);</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/toggle.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600;">Event Helpers:</h2>
<h3>blur()</h3>
<p>возвращает: jQuery<br />
Вызывает событие blur для всех элементов набора. В этом случае будут вызваны все функции, связанные с этим событием blur и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием blur. Событие blur обычно вызывается, когда элемент теряет фокус через действие указывающего устройства или клавиши Tab.</p>
<p>Вызываем событие blur для всех параграфов:</p>
<pre class="brush: jscript;">$(&quot;p&quot;).blur();</pre>
<h3>blur(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием blur для всех элементов набора.</p>
<p>Чтобы выводить в alert сообщение &laquo;Hello World!&raquo; каждый раз, когда для любого параграфа наступает событие blur, надо сделать следующее:</p>
<pre class="brush: jscript;">$(&quot;p&quot;).blur( function () { alert(&quot;Hello World!&quot;); } );</pre>
<h3>change()</h3>
<p>возвращает: jQuery<br />
Вызывает событие change для каждого элемента набора. В этом случае будут вызваны все функции, связанные с этим событием change и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием change. Событие change обычно вызывается, когда элемент управления теряет фокус и его значение было изменено с момента получения им фокуса.</p>
<h3>change(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием change для всех элементов набора.</p>
<p>По событию change для всех текстовых элементов ввода вызываем некую функцию, которая например будет проверять вводимые данные.</p>
<pre class="brush: jscript;">$(&quot;input:text&quot;).change( function() {
  // здесь проверяем ввод на валидность
});</pre>
<p>В следующем примере по событию change, используем функцию, которая получает текст каждой выбранной опции и записывает этот текст в элемент div в виде строки. Далее используем change(), чтобы вызвать это событие.</p>
<pre class="brush: jscript;">$(&quot;select&quot;).change(function () {
  var str = &quot;&quot;;
  $(&quot;select option:selected&quot;).each(function () {
    str += $(this).text() + &quot; &quot;;
  });
  $(&quot;div&quot;).text(str);
}).change();</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/change_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>click()</h3>
<p>возвращает: jQuery<br />
Вызывает событие click для каждого элемента набора. В этом случае будут вызваны все функции, связанные с этим обытием.</p>
<p>Чтобы вызвать событие click для всех параграфов на странице:</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click();</pre>
<h3>click(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием click для всех элементов набора. Событие click наступает, когда кнопка указывающего устройства (например мышь) кликнута на элементе. Клик определяется как mousedown + mouseup в некотором месте экрана.</p>
<p>Чтобы скрыть параграфы на странице, на них необходимо кликнуть. Здесь hover() используется просто для эффекта.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click(function () {
  $(this).slideUp();
});
$(&quot;p&quot;).hover(function () {
  $(this).addClass(&quot;hilite&quot;);
}, function () {
  $(this).removeClass(&quot;hilite&quot;);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/click_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>dblclick()</h3>
<p>возвращает: jQuery<br />
Вызывает событие dblclick для каждого элемента набора. В этом случае будут вызваны все функции, связанные с этим событием dblclick и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием dblclick.</p>
<h3>dblclick(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием dblclick для каждого элемента набора. Событие dblclick обычно вызывается, когда кнопка указывающего устройства дважды быстро кликнута на элементе.</p>
<p>Чтобы выводить в alert сообщение &laquo;Hello World!&raquo; каждый раз, когда для любого параграфа наступает событие dblclick, надо сделать следующее:</p>
<pre class="brush: jscript;">$(&quot;p&quot;).dblclick( function () { alert(&quot;Hello World!&quot;); });</pre>
<p>В следующем примере двойной клик по элементу div, переключает его цвет.</p>
<pre class="brush: jscript;">var divdbl = $(&quot;div:first&quot;);
divdbl.dblclick(function () {
  divdbl.toggleClass('dbl');
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/dblclick_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>error()</h3>
<p>возвращает: jQuery<br />
Вызывает событие error для каждого элемента набора. В этом случае будут вызваны все функции, связанные с этим событием error и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием error. Событие error обычно вызывается, когда элемент теряет фокус через действие указывающего устройства или клавиши Tab.</p>
<h3>error(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием error для каждого элемента набора.<br />
Для события error нет общих стандартов. В большинстве браузеров, событие error объекта window вызывается, когда на странице обнаружена ошибка JavaScript. Для объекта image событие error вызывается при некорректном содержимом атрибута src &#8211; например, несуществующий файл.</p>
<p>Если событие произошло в объекте window, обработчик события передает три параметра:</p>
<ul>
<li>сообщение, описывающее событие (&laquo;varName is not defined&raquo;, &laquo;missing operator in expression&raquo;, и т.д.);</li>
<li>полный URL документа, который содержит ошибку;</li>
<li>номер строки, в которой произошла ошибка;</li>
</ul>
<p>Если обработчик события вернет true, это означает, что событие было обработано и браузер не показывает никаких ошибок.</p>
<p>Чтобы сохранить лог ошибок JavaScript на стороне сервера, можно попробовать сделать так:</p>
<pre class="brush: jscript;">$(window).error(function(msg, url, line){
  jQuery.post(&quot;js_error_log.php&quot;,
    { msg: msg, url: url, line: line });
});</pre>
<p>Чтобы скрыть от пользователя ошибки JavaScript, попробуйте:</p>
<pre class="brush: jscript;">$(window).error(function(){
  return true;
});</pre>
<p>Чтобы скрыть иконку &laquo;broken image&raquo; от пользователей IE, можно попытаться сделать так:</p>
<pre class="brush: jscript;">$(&quot;img&quot;).error(function(){
  $(this).hide();
});</pre>
<h3>focus()</h3>
<p>возвращает: jQuery<br />
Вызывает событие focus для каждого элемента набора. В этом случае будут вызваны все функции, связанные с этим событием focus.</p>
<p>Чтобы при загрузке страницы сразу передать фокус элементу с идентификатором &#8216;login&#8217;, сделайте следующее:</p>
<pre class="brush: jscript;">$(document).ready(function(){
  $(&quot;#login&quot;).focus();
});</pre>
<h3>focus(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием focus для каждого элемента набора. Событие focus вызывается, когда элемент получает фокус через указатель мыши или клавишу Tab.</p>
<p>Чтобы запретить пользователю писать что-либо в поле ввода, сделайте так:</p>
<pre class="brush: jscript;">$(&quot;input[@type=text]&quot;).focus(function(){
  $(this).blur();
});</pre>
<p>В этом примере как только элемент input получает фокус, отображается следующий сразу за ним элемент span и в течении одной секунды &laquo;затухает&raquo;.</p>
<pre class="brush: jscript;">$(&quot;input&quot;).focus(function () {
  $(this).next(&quot;span&quot;).css('display','inline')
    .fadeOut(1000);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/focus_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>keydown()</h3>
<p>возвращает: jQuery<br />
Вызывает событие keydown для всех элементов набора. В этом случае будут вызваны все функции, связанные с этим событием keydown и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием keydown.</p>
<h3>keydown(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием keydown для каждого элемента набора. Событие keydown обычно вызывается, когда на клавиатуре нажата какая-либо клавиша.</p>
<p>Чтобы выполнять различные действия в зависимости от того, какая клавиша нажата на клавиатуре, попробуйте сделать так:</p>
<pre class="brush: jscript;">$(window).keydown(function(event){
  switch (event.keyCode) {
    // ...
    // разные клавиши выполняют разные сценарии
    // разные браузеры могут предоставлять разные коды
    // чтобы узнать больше смотрите тут
    // http://unixpapa.com/js/key.html
    // ...
  }
});</pre>
<h3>keypress()</h3>
<p>возвращает: jQuery<br />
Вызывает событие keypress для всех элементов набора. В этом случае будут вызваны все функции, связанные с этим событием keypress и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием keypress. Событие keypress обычно вызывается, когда на клавиатуре была нажата какая-либо клавиша.</p>
<h3>keypress(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием keypress для каждого элемента набора. Событие keypress обычно вызывается, когда на клавиатуре была нажата какая-либо клавиша. Событие keypress определяется как keydown + keyup на какой-либо клавише.</p>
<p>В этом примере мы показываем код нажатой клавиши, но добавляем в строку только буквы латинского алфавита и пробелы.</p>
<pre class="brush: jscript;">$(&quot;input&quot;).keypress(function (e) {
if (e.which == 32 || (65 &lt;= e.which &amp;&amp; e.which &lt;= 65 + 25) || (97 &lt;= e.which &amp;&amp; e.which &lt;= 97 + 25)) {
  var c = String.fromCharCode(e.which);
  $(&quot;p&quot;).append($(&quot;&lt;span&gt;&lt;/span&gt;&quot;)).children(&quot;:last&quot;).append(document.createTextNode(c));
} else if ( e.which == 8 ) {
  // backspace in IE only be on keydown
  $(&quot;p&quot;).children(&quot;:last&quot;).remove();
}
$(&quot;div&quot;).text(e.which);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/keypress_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>keyup()</h3>
<p>возвращает: jQuery<br />
Вызывает событие keyup для всех элементов набора. В этом случае будут вызваны все функции, связанные с этим событием keyup и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием keyup.</p>
<h3>keyup(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием keyup для каждого элемента набора. Событие keyup обычно вызывается, когда на клавиатуре была отпущена какая-либо клавиша.</p>
<p>Небольшой пример демонстрирует, как выполнить какое-либо действие в тот момент, когда отпущена клавиша escape:</p>
<pre class="brush: jscript;">$(document).keyup(function(event){
  if (event.keyCode == 27) {
    alert('escaped!');
  }
});</pre>
<h3>load(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием load для каждого элемента набора. Будучи связанным с элементом window, это событие вызывается только тогда, когда агент пользователя завершит загрузку всего содержимого документа (фреймы, объекты, графику). Для элементов это вызывается, когда целевой элемент и все его содержимое полностью загружено.<br />
Необходимо помнить, что load будет работать только в том случае, если он определен перед элементом, полной загрузки которого мы ожидаем. Если же его определить после такого элемента &#8211; ничего не произойдет.<br />
В этом примере некоторый код будет выполнен только после полной загрузки страницы, включая и графику.</p>
<pre class="brush: jscript;">$(window).load(function () {
  // выполняем некоторый код
});</pre>
<h3>mousedown(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием mousedown для каждого элемента набора. Событие mousedown обычно вызывается, когда клавиша указывающего устройства (мыши) была нажата на элементе.</p>
<p>В этом примере добавляется текст сообщений, когда происходят события mouseup и mousedown на элементе p.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).mouseup(function(){
  $(this).append('&lt;span style=&quot;color: #ff0000&quot;&gt;Up!&lt;/span&gt;');
}).mousedown(function(){
  $(this).append('&lt;span style=&quot;color: #0000ff&quot;&gt;Down!&lt;/span&gt;');
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/mousedown_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>mousemove(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием mousemove для каждого элемента набора. Событие mousemove обычно вызывается, когда указатель мыши перемещается поверх элемента. Обработчик события принимает один аргумент &#8211; объект события, в свойствах clientX  и clientY которого представлены координаты указателя мыши.</p>
<p>В этом примере показываем координаты указателя мыши в то время, как указатель перемещается над элементом div.</p>
<blockquote><p>Примите во внимание, что здесь пример демонстрируется во фрейме, поэтому координаты курсора высчитываются относительно этого фрейма.</p></blockquote>
<pre class="brush: jscript;">$(&quot;div&quot;).mousemove(function(e){
  var pCoords = &quot;( &quot;+e.pageX+&quot;, &quot;+e.pageY+&quot; )&quot;;
  var cCoords = &quot;( &quot;+e.clientX+&quot;, &quot;+e.clientY+&quot; )&quot;;
  $(&quot;span:first&quot;).text(&quot;e.pageX,e.pageY-&quot; + pCoords);
  $(&quot;span:last&quot;).text(&quot;e.clientX,e.clientY-&quot; + cCoords);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/mousemove_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>mouseout(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием mouseout для каждого элемента набора. Событие mouseout обычно вызывается, когда указатель мыши выходит за пределы элемента.</p>
<p>В этом примере показываются сообщения, когда происходят события mouseover и mouseout. Событие <strong>mouseout</strong> вызывается, когда указатель мыши перемещается в/из дочернего элемента, тогда как для <strong>mouseleave</strong> этого не происходит.</p>
<pre class="brush: jscript;">var i = 0;
$(&quot;div.overout&quot;).mouseout(function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь out&quot;);
  $(&quot;p:last&quot;,this).text(++i);
}).mouseover(function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь over&quot;);
});
var n = 0;
$(&quot;div.enterleave&quot;).bind(&quot;mouseenter&quot;,function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь пришла&quot;);
}).bind(&quot;mouseleave&quot;,function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь ушла&quot;);
  $(&quot;p:last&quot;,this).text(++n);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/mouseout_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>mouseover(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием mouseover для каждого элемента набора. Событие mouseover обычно вызывается, когда указатель мыши находится в пределах элемента.<br />
В этом примере показываются сообщения, когда происходят события mouseover и mouseout. Событие <strong>mouseover</strong> вызывается, когда указатель мыши перемещается в/из дочернего элемента, тогда как для <strong>mouseleave</strong> этого не происходит.</p>
<pre class="brush: jscript;">var i = 0;
$(&quot;div.overout&quot;).mouseover(function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь over&quot;);
  $(&quot;p:last&quot;,this).text(++i);
}).mouseout(function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь out&quot;);
});
var n = 0;
$(&quot;div.enterleave&quot;).bind(&quot;mouseenter&quot;,function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь пришла&quot;);
  $(&quot;p:last&quot;,this).text(++n);
}).bind(&quot;mouseleave&quot;,function(){
  $(&quot;p:first&quot;,this).text(&quot;мышь ушла&quot;);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/mouseover_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>mouseup(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием mouseup для каждого элемента набора. Событие mouseup обычно вызывается, когда клавиша указывающего устройства (мыши) была отпущена на элементе.</p>
<p>В этом примере добавляется текст сообщений, когда происходят события mouseup и mousedown на элементе p.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).mouseup(function(){
  $(this).append('&lt;span style=&quot;color: #ff0000&quot;&gt;Up!&lt;/span&gt;');
}).mousedown(function(){
  $(this).append('&lt;span style=&quot;color: #0000ff&quot;&gt;Down!&lt;/span&gt;');
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/mouseup_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>resize(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием resize для каждого элемента набора. Событие resize обычно вызывается, когда изменяются размеры области просмотра документа.</p>
<p>Чтобы сделать изменение размеров окна головной болью, попробуйте сделать так:</p>
<pre class="brush: jscript;">$(window).resize(function(){
  alert(&quot;Stop it!&quot;);
});</pre>
<h3>scroll(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием scroll для каждого элемента набора. Событие scroll обычно вызывается, когда прокручивается область просмотра документа.</p>
<p>Что бы делать что-нибудь, отслеживая прокрутку области просмотра документа:</p>
<pre class="brush: jscript;">$(&quot;p&quot;).clone().appendTo(document.body);
$(&quot;p&quot;).clone().appendTo(document.body);
$(&quot;p&quot;).clone().appendTo(document.body);
$(window).scroll(function () {
  $(&quot;span&quot;).css(&quot;display&quot;, &quot;inline&quot;).fadeOut(&quot;slow&quot;);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/scroll_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>select()</h3>
<p>возвращает: jQuery<br />
Вызывает событие select для всех элементов набора. В этом случае будут вызваны все функции, связанные с этим событием select и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием select.<br />
Не стоит путать событие &laquo;select&raquo; с событием &laquo;change&raquo;, которое вызывается, когда HTML-элемент select используется для выбора какой(их)-либо опций.</p>
<p>Чтобы вызвать событие select для всех элементов input, попробуйте сделать так:</p>
<pre class="brush: jscript;">$(&quot;input&quot;).select();</pre>
<h3>select(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием select для каждого элемента набора. Событие select обычно вызывается, когда пользователь выделяет какой-либо текст в текстовом поле, например input и textarea.</p>
<p>Чтобы выполнить какие-либо действия, когда выделяется текст в элементах ввода текста:</p>
<pre class="brush: jscript;">$(document).select( function () {
  $(&quot;div&quot;).text(&quot;Что-то было выделено!&quot;)
  .show().fadeOut(1000);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/select_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>submit()</h3>
<p>возвращает: jQuery<br />
Вызывает событие submit для всех элементов набора. В этом случае будут вызваны все функции, связанные с этим событием submit и также вызовет действие браузера по умолчанию для этого события. Поведение браузера по умолчанию можно предупредить, возвращая false из одной или нескольких функций, связанных с этим событием submit.</p>
<p>Чтобы вызвать событие submit для первой формы на странице, надо сделать так:</p>
<pre class="brush: jscript;">$(&quot;form:first&quot;).submit();</pre>
<h3>submit(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием submit для каждого элемента набора. Событие submit обычно вызывается, когда форма отправляется.</p>
<p>Чтобы предотвратить отправку формы, если какая-либо переменная не установлена, сделайте:</p>
<pre class="brush: jscript;">$(&quot;form&quot;).submit( function () {
  return this.some_flag_variable;
} );</pre>
<p>Или более подробный пример на ту же тему:</p>
<pre class="brush: jscript;">$(&quot;form&quot;).submit(function() {
  if ($(&quot;input:first&quot;).val() == &quot;correct&quot;) {
    $(&quot;span&quot;).text(&quot;Проверяем...&quot;).show();
    return true;
  }
  $(&quot;span&quot;).text(&quot;Неправильно!&quot;)
      .show().fadeOut(1000);
  return false;
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/submit_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>unload(fn)</h3>
<p>возвращает: jQuery<br />
Связывает функцию с событием unload для каждого элемента набора.</p>
<p>Чтобы попрощаться с посетителем, выведя сообщение в alert в то время когда страница закрывается:</p>
<pre class="brush: jscript;">$(window).unload( function () { alert(&quot;Bye now!&quot;); } );</pre>
<p>На этом пожалуй все. Ну, не совсем конечно. Впереди нас ждет еще интереснейшая тема &#8211; эффекты библиотеки jQuery.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/60.html/feed</wfw:commentRss>
		<slash:comments>99</slash:comments>
		</item>
		<item>
		<title>jQuery API: Events &#8211; события. Часть 1.</title>
		<link>http://www.linkexchanger.su/2008/59.html</link>
		<comments>http://www.linkexchanger.su/2008/59.html#comments</comments>
		<pubDate>Mon, 16 Jun 2008 01:40:27 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[документация jQuery]]></category>
		<category><![CDATA[события]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/59.html</guid>
		<description><![CDATA[В документации к библиотеке jQuery тема событий и их обработки занимает значительное место. Поэтому мы разделим ее на две части и в сегодняшней статье поближе познакомимся с &#171;основными&#187; (условно конечно) методами &#8211; ready, bind, one, trigger и triggerHandler, unbind. А уже во второй части познакомимся с хэлперами &#8211; эдакими помощниками, используя которых, Вы сможете как [...]]]></description>
			<content:encoded><![CDATA[<p>В <strong>документации к библиотеке jQuery</strong> тема событий и их обработки занимает значительное место. Поэтому мы разделим ее на две части и в сегодняшней статье поближе познакомимся с &laquo;основными&raquo; (условно конечно) методами &#8211; ready, bind, one, trigger и triggerHandler, unbind. А уже во второй части познакомимся с хэлперами &#8211; эдакими помощниками, используя которых, Вы сможете как вызывать определенные события, так и связывать с ними некоторые действия&#8230;<span id="more-59"></span></p>
<h2 style="color: #cc6600;">Page Load:</h2>
<h3>ready(fn)</h3>
<p>возвращает: jQuery<br />
Назначает функции, которые будут выполняться всякий раз, когда объектная модель документа (DOM) готова к использованию. Это наверное самая важная функция, включенная в раздел &laquo;События&raquo;, поскольку она может улучшить время реакции веб-приложений, и хорошая альтернатива использованию события window.onload, поскольку при использовании этого метода, Ваши функции будут вызваны уже в тот момент, когда объектная модель документа (DOM) готова к работе. Здесь не нужно ожидать, когда страница будет полностью загружена.</p>
<p>Аргумент, передаваемый обработчику события, является ссылкой на функцию jQuery. Можно использовать jQuery или $ без риска возникновения коллизий в пространстве имен. Однако необходимо убедиться в том, что  не имеет обработчика события onload, в противном случае $(document).ready() может не выполниться.</p>
<p>На странице можно иметь сколь угодно много $(document).ready событий. В этом случае функции, связанные с ними, будут выполняться в порядке их следования.</p>
<p>В этом примере мы покажем сообщение о том, что DOM загружена и готова к работе.</p>
<pre class="brush: jscript;">$(document).ready(function(){
  $(&quot;p:first&quot;)
    .text(&quot;DOM загружена и готова к работе!&quot;);
});
// еще раз тоже самое
jQuery(document).ready(function(){
  jQuery(&quot;p:last&quot;)
    .text(&quot;Объектная модель документа готова!&quot;);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/ready_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600;">Event Handling:</h2>
<h3>bind(type, [data], fn)</h3>
<p>возвращает: jQuery<br />
Связывает обработчик с одним или более событиями (например click) для каждого элемента набора. Может также связывать пользовательские события. Возможные события: blur, focus, load, resize, scroll, unload, click, dblclick,  mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error. Обработчик события принимает объект событие, что делает возможным предотвращение поведения по умолчанию. Чтобы предотвратить и поведение по умолчанию и &laquo;всплывание&raquo; события (т.е. передачу события от одного элемента другому), обработчик должен возвращать false.</p>
<p>В большинстве случаев можно определить обработчики события как анонимные функции, как показано в следующем примере. Всякий раз, когда совершен клик на параграфе, в alert выводится текст этого параграфа.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).bind(&quot;click&quot;, function(){
  alert( $(this).text() );
});</pre>
<p>В случае, если это невозможно, следует передавать дополнительные данные во втором параметре [data] (см. пример).</p>
<pre class="brush: jscript;">function handler(event) {
  alert(event.data.foo);
}
$(&quot;p&quot;).bind(&quot;click&quot;, {foo: &quot;bar&quot;}, handler);</pre>
<p>Чтобы отменить действие по умолчанию и предотвратить &laquo;всплывание&raquo;, возвращаем false:</p>
<pre class="brush: jscript;">$(&quot;form&quot;).bind(&quot;submit&quot;, function() { return false; });</pre>
<p>Чтобы отменить только действие по умолчанию используется метод preventDefault.</p>
<pre class="brush: jscript;">$(&quot;form&quot;).bind(&quot;submit&quot;, function(event){
  event.preventDefault();
});</pre>
<p>Для предотвращения &laquo;всплывания&raquo; события используется метод stopPropagation.</p>
<pre class="brush: jscript;">$(&quot;form&quot;).bind(&quot;submit&quot;, function(event){
  event.stopPropagation();
});</pre>
<p>Также можно связать некие пользовательские события.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).bind(&quot;myCustomEvent&quot;, function(e,myName,myValue){
  $(this).text(myName + &quot;, hi there!&quot;);
  $(&quot;span&quot;).stop().css(&quot;opacity&quot;, 1)
    .text(&quot;myName = &quot; + myName)
    .fadeIn(30).fadeOut(1000);
});
$(&quot;button&quot;).click(function () {
  $(&quot;p&quot;).trigger(&quot;myCustomEvent&quot;, [ &quot;John&quot; ]);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/bind_custom.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>В следующем примере демонстрируется обработка событий click и double-click на параграфе.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).bind(&quot;click&quot;, function(e){
  var str = &quot;( &quot; + e.pageX + &quot;, &quot; + e.pageY + &quot; )&quot;;
  $(&quot;span&quot;).text(&quot;Кликнуто! &quot; + str);
});
$(&quot;p&quot;).bind(&quot;dblclick&quot;, function(){
  $(&quot;span&quot;).text(&quot;Двойной клик сделан на &quot;+this.tagName);
});
$(&quot;p&quot;).bind(&quot;mouseenter mouseleave&quot;, function(e){
  $(this).toggleClass(&quot;over&quot;);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/bind.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<blockquote><p>Примите во внимание, что пример демонстрируется во фрейме, соответственно и координаты вычисляются относительно фрейма.</p></blockquote>
<h3>one(type, [data], fn)</h3>
<p>возвращает: jQuery<br />
Связывает обработчик с одним или более событиями, которые будут выполнены только один раз, для каждого элемента в наборе. Обработчик исполняется только один раз для каждого элемента. В остальном действуют те же правила, описанные при применении bind(). Обработчик события принимает объект событие, что делает возможным предотвращение поведения по умолчанию. Чтобы предотвратить и поведение по умолчанию и &laquo;всплывание&raquo; события (т.е. передачу события от одного элемента другому), обработчик должен возвращать false.</p>
<p>В большинстве случаев можно определить обработчики события как анонимные функции, как показано в следующем примере. Первый клик, который совершен на параграфе, выводит в alert текст этого параграфа.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).one(&quot;click&quot;, function(){
  alert( $(this).text() );
});</pre>
<p>В случае, если это невозможно, следует передавать дополнительные данные во втором параметре [data]. В следующем примере связываем &laquo;одноразовый&raquo; клик с каждым элементом div.</p>
<pre class="brush: jscript;">var n = 0;
$(&quot;div&quot;).one(&quot;click&quot;, function(){
  var index = $(&quot;div&quot;).index(this);
  $(this).css({ borderStyle:&quot;inset&quot;, cursor:&quot;auto&quot; });
  $(&quot;p&quot;).text(&quot;DIV с индексом #&quot; + index + &quot; кликнут.&quot; +
  &quot;  Всего &quot; + ++n + &quot; кликов.&quot;);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/one.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>trigger(type, [data])</h3>
<p>возвращает: jQuery<br />
Вызывает событие (переданное в type) для каждого элемента набора. Однако это также вызовет выполнение браузером действий по умолчанию для этого события. Например, передавая &#8217;submit&#8217; в функцию trigger() Вы заставите браузер отправить форму. Действия браузера по умолчанию можно предотвратить, возвращая false для одной из функций, связанных с событием.</p>
<p>Чтобы отправить первую форму без использования submit(), надо проделать следующее:</p>
<pre class="brush: jscript;">$(&quot;form:first&quot;).trigger(&quot;submit&quot;);</pre>
<p>Чтобы передать произвольные данные событию:</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click( function (event, a, b) {
  // при обычном клике по параграфу,
  // a и b остаются неопределенными
  // при клике вызванном через trigger(),
  // a ссылается на &quot;foo&quot;, b ссылается на &quot;bar&quot;.
} ).trigger(&quot;click&quot;, [&quot;foo&quot;, &quot;bar&quot;]);</pre>
<p>В этом примере будет яснее. Следующий код выводит &laquo;Hello World!&raquo; в alert.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).bind(&quot;myEvent&quot;, function (event,mess1,mess2) {
  alert(mess1 + ' ' + mess2);
});
$(&quot;p&quot;).trigger(&quot;myEvent&quot;, [&quot;Hello&quot;,&quot;World!&quot;]);</pre>
<p>Также можно вызывать пользовательские события, зарегистрированные в bind. В этом примере клик по button #2 вызывает клик по button #1. Но не наоборот.</p>
<pre class="brush: jscript;">$(&quot;button:first&quot;).click(function () {
  update($(&quot;span:first&quot;));
});
$(&quot;button:last&quot;).click(function () {
  $(&quot;button:first&quot;).trigger('click');
  update($(&quot;span:last&quot;));
});
function update(j) {
  var n = parseInt(j.text(), 0);
  j.text(n + 1);
}</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/trigger.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>triggerHandler(type, [data])</h3>
<p>возвращает: jQuery<br />
Это особенный метод вызова всех связанных с элементом обработчиков событий БЕЗ выполнения браузером действий по умолчанию. Событие вызывается только для первого элемента, включенного в набор. Если набор элементов пуст, этот метод вернет &#8216;undefined&#8217;.</p>
<p>Испытайте следующий пример. Если Вы вызываете trigger(), то получаете соответствующее сообщение и можете заметить как браузер ТОЖЕ совершил действие по умолчанию &#8211; передал фокус элементу input. Попробуйте теперь (убрав фокус с элемента input) вызвать triggerHandler() &#8211; сообщение Вы также получите, но действия браузера по умолчанию не произойдет.</p>
<pre class="brush: jscript;">$(&quot;#old&quot;).click(function(){
  $(&quot;input&quot;).trigger(&quot;focus&quot;);
});
$(&quot;#new&quot;).click(function(){
  $(&quot;input&quot;).triggerHandler(&quot;focus&quot;);
});
$(&quot;input&quot;).focus(function(){
  $(&quot;&lt;span&gt;Focused!&lt;/span&gt;&quot;).appendTo(&quot;body&quot;)
    .fadeOut(1000);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/triggerHandler.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>unbind([type], [data])</h3>
<p>возвращает: jQuery<br />
Это метод &#8211; противоположность bind, он удаляет все события связанные с элементом для каждого элемента набора. Можно также удалить пользовательские события, зарегистрированные в bind(). Если передан аргумент type &#8211; удалены будут все события этого типа.</p>
<p>Посмотрите внимательнее следующий пример. Нажатие на кнопку Bind, делает цветную кнопку &laquo;рабочей&raquo;. Если же нажать кнопку Unbind, цветная кнопка больше не работает&#8230;</p>
<pre class="brush: jscript;">function aClick() {
  $(&quot;div&quot;).show().fadeOut(&quot;slow&quot;);
}
$(&quot;#bind&quot;).click(function () {
  $(&quot;#theone&quot;).click(aClick).text(&quot;Can Click!&quot;);
});
$(&quot;#unbind&quot;).click(function () {
  $(&quot;#theone&quot;).unbind('click', aClick)
    .text(&quot;Does nothing...&quot;);
});</pre>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_events/unbind.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Ну, для первой части достаточно, а во второй, как и обещал, будем знакомиться с хэлперами&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/59.html/feed</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
		<item>
		<title>jQuery API: работа библиотеки с CSS свойствами.</title>
		<link>http://www.linkexchanger.su/2008/58.html</link>
		<comments>http://www.linkexchanger.su/2008/58.html#comments</comments>
		<pubDate>Sun, 01 Jun 2008 23:29:29 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[документация jQuery]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/58.html</guid>
		<description><![CDATA[В сегодняшней статье по документации jQuery будет разобрана работа библиотеки с CSS свойствами. Мы будем учиться получать и устанавливать значения CSS-свойств для элементов, в том числе работать с шириной и высотой, а также определять позицию элемента.
CSS:
css(name)
возвращает: String
Возвращает значения для css-свойства, указанного в name, для первого элемента в наборе.
В этом примере, чтобы получить доступ к css-свойству [...]]]></description>
			<content:encoded><![CDATA[<p>В сегодняшней статье по <strong>документации jQuery</strong> будет разобрана работа библиотеки с CSS свойствами. Мы будем учиться получать и устанавливать значения CSS-свойств для элементов, в том числе работать с шириной и высотой, а также определять позицию элемента.<span id="more-58"></span></p>
<h2 style="color: #cc6600">CSS:</h2>
<h3>css(name)</h3>
<p>возвращает: String<br />
Возвращает значения для css-свойства, указанного в name, для первого элемента в наборе.</p>
<p>В этом примере, чтобы получить доступ к css-свойству background-color нужно всего лишь кликнуть по элементу div.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).click(function () {
  var color = $(this).css(&quot;background-color&quot;);
  $(&quot;#result&quot;).html(&quot;Цвет этого div'а &lt;span&gt;&quot;
  + color + &quot;&lt;/span&gt;.&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/css_name.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/css_name.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>css(properties)</h3>
<p>возвращает: jQuery<br />
Устанавливает значения для css-свойств всех элементов набора, используя объект, состоящий из пар ключ/значение. Это наилучший способ установить значения для сразу нескольких css-свойств всех элементов набора.</p>
<p>Посмотрите этот пример. Если указатель мыши проходит над параграфом, то для этого параграфа будет установлен желтый фон и жирное начертание текста. Когда же указатель мыши выходит за пределы параграфа &#8211; фон изменяется на серый, начертание текста становится нормальным, а сам текст становится синего цвета.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).hover(function () {
  $(this).css({
    backgroundColor:&quot;yellow&quot;,
    fontWeight:&quot;bolder&quot;
  });
}, function () {
  var cssObj = {
    backgroundColor: &quot;#ddd&quot;,
    fontWeight: &quot;&quot;,
    color: &quot;rgb(0,40,244)&quot;
  }
  $(this).css(cssObj);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/css_properties.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/css_properties.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>css(name, value)</h3>
<p>возвращает: jQuery<br />
Устанавливает значение одного css-свойства для всех элементов набора. Если в качестве значения какого-либо из css-свойств используется число, оно автоматически конвертируется в значение в пикселах.</p>
<p>В этом примере, для того чтобы изменить цвет текста любого параграфа, используется событие mouseover.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).mouseover(function () {
  $(this).css(&quot;color&quot;,&quot;red&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/css_name_value.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/css_name_value.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Позиционирование:</h2>
<h3>offset()</h3>
<p>возвращает: Object{top,left}<br />
Для первого элемента в наборе получает текущие отступы относительно точки просмотра. Возвращается объект, содержащий значения (целые числа) отступов сверху и слева. Этот метод работает только с видимыми элементами.</p>
<p>В этом примере мы получаем значения отступов для второго параграфа, куда собственно эти значения и подставляем.</p>
<pre class="brush: jscript;">var p = $(&quot;p:last&quot;);
var offset = p.offset();
p.html( &quot;left: &quot; + offset.left + &quot;, top: &quot; + offset.top );</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/offset.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/offset.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Высота и ширина:</h2>
<h3>height()</h3>
<p>возвращает: Integer<br />
Получает текущее значение высоты в пикселах для первого элемента в наборе. Начиная с версии jQuery 1.2, этот метод позволяет найти высоту для window и document.</p>
<p>В этом примере мы получаем несколько значений высоты. Функция showHeight вспомогательная, просто для вывода значений в элемент div.</p>
<pre class="brush: jscript;">function showHeight(ele, h) {
  $(&quot;div&quot;).text(&quot;Высота элемента &quot;
+ ele + &quot; равна &quot; + h + &quot;px.&quot;);
}
$(&quot;#getp&quot;).click(function () {
  showHeight(&quot;paragraph&quot;, $(&quot;p&quot;).height());
});
$(&quot;#getd&quot;).click(function () {
  showHeight(&quot;document&quot;, $(document).height());
});
$(&quot;#getw&quot;).click(function () {
  showHeight(&quot;window&quot;, $(window).height());
});</pre>
<blockquote><p>Обратите внимание, что пример демонстрируется во фрейме, поэтому некоторые значения, которые Вы видите, меньше ожидаемых Вами.</p></blockquote>
<p><iframe src="http://www.linkexchanger.su/jquery_css/height.html" style="border: medium none " height="180" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/height.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>height(val)</h3>
<p>возвращает: jQuery<br />
Устанавливает высоту в CSS-свойстве для каждого элемента в наборе. Если единицы измерения не определены однозначно (например &#8216;em&#8217; или &#8216;%&#8217;), тогда значение устанавливается в px.</p>
<p>В этом примере по клику на элементе div, для него устанавливается высота в 30px и заодно изменяется цвет.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).one('click', function () {
  $(this).height(30).css({cursor:&quot;auto&quot;, backgroundColor:&quot;green&quot;});
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/height_val.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/height_val.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>width()</h3>
<p>возвращает: Integer<br />
Получает текущее значение ширины в пикселах для первого элемента в наборе. Начиная с версии jQuery 1.2, этот метод позволяет найти ширину для window и document.</p>
<p>В этом примере мы получаем несколько значений высоты. Функция showWidth вспомогательная, просто для вывода значений в элемент div.</p>
<pre class="brush: jscript;">function showWidth(ele, w) {
  $(&quot;div&quot;).text(&quot;Ширина элемента &quot; + ele + &quot; равна &quot; + w + &quot;px.&quot;);
}
$(&quot;#getp&quot;).click(function () {
  showWidth(&quot;paragraph&quot;, $(&quot;p&quot;).width());
});
$(&quot;#getd&quot;).click(function () {
  showWidth(&quot;document&quot;, $(document).width());
});
$(&quot;#getw&quot;).click(function () {
  showWidth(&quot;window&quot;, $(window).width());
});</pre>
<blockquote><p>Обратите внимание, что пример демонстрируется во фрейме, поэтому некоторые значения, которые Вы видите, меньше ожидаемых Вами.</p></blockquote>
<p><iframe src="http://www.linkexchanger.su/jquery_css/width.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/width.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>width(val)</h3>
<p>возвращает: jQuery<br />
Устанавливает ширину в CSS-свойстве для каждого элемента в наборе. Если единицы измерения не определены однозначно (например &#8216;em&#8217; или &#8216;%&#8217;), тогда значение устанавливается в px.</p>
<p>В этом примере по клику на элементе div, для него устанавливается ширина в 30px и заодно изменяется цвет.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).one('click', function () {
  $(this).width(30).css({cursor:&quot;auto&quot;, &quot;background-color&quot;:&quot;blue&quot;});
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/width_val.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/width_val.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Вот и все на сегодня. Статья получилась не очень большая, но, надеюсь эта информация пригодится многим.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/58.html/feed</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>jQuery API: Manipulation &#8211; манипуляции элементами DOM.</title>
		<link>http://www.linkexchanger.su/2008/56.html</link>
		<comments>http://www.linkexchanger.su/2008/56.html#comments</comments>
		<pubDate>Tue, 27 May 2008 21:51:51 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[Manipulation]]></category>
		<category><![CDATA[документация jQuery]]></category>
		<category><![CDATA[манипуляции]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/56.html</guid>
		<description><![CDATA[После знакомства с этим разделом документации jQuery Вы сможете с легкостью манипулировать элементами объектной модели документа. Сегодня мы научимся вставлять, обертывать, замещать, копировать и удалять элементы DOM.
Правда начнем мы с нескольких методов, которые уже изучали в статье jQuery API: Attributes &#8211; атрибуты, но памятуя о том, что повторение &#8211; мать учения, это будет далеко не [...]]]></description>
			<content:encoded><![CDATA[<p>После знакомства с этим разделом <strong>документации jQuery</strong> Вы сможете с легкостью манипулировать элементами объектной модели документа. Сегодня мы научимся вставлять, обертывать, замещать, копировать и удалять элементы DOM.</p>
<p>Правда начнем мы с нескольких методов, которые уже изучали в статье <a href="http://www.linkexchanger.su/2008/54.html">jQuery API: Attributes &#8211; атрибуты</a>, но памятуя о том, что повторение &#8211; мать учения, это будет далеко не лишним. Тем более, что их использование вполне укладывается в понятие манипулирования объектной моделью документа.<span id="more-56"></span></p>
<h2 style="color: #cc6600">Изменение контента:</h2>
<h3>html()</h3>
<p>возвращает: String<br />
Получает в виде строки html-код (innerHTML) для первого элемента в наборе. Эта возможность недоступна для XML-документов (хотя это работает для XHTML-документов).</p>
<p>В этом примере клик мышкой на параграфе конвертирует его HTML-код в текст.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).click(function () {
  var htmlStr = $(this).html();
  $(this).text(htmlStr);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_attributes/attr_html.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_attributes/attr_html.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>html(val)</h3>
<p>возвращает: jQuery<br />
Устанавливает html-код для всех элементов в наборе. Эта возможность недоступна для XML-документов (хотя это работает для XHTML-документов).</p>
<p>В этом примере мы добавляем некоторый html-код в каждый элемент div.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).html(&quot;&lt;span class=&quot;red&quot;&gt;Здрасссьте &lt;strong&gt;еще раз!&lt;/strong&gt;&lt;/span&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_attributes/attr_html_val.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_attributes/attr_html_val.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>text()</h3>
<p>возвращает: String<br />
Получает в виде строки текстовое содержимое всех элементов набора. Этот метод работает как с HTML, так и с XML-документами.</p>
<p>В этом примере мы ищем текст первого параграфа (html внутри параграфа игнорируется), а затем вставляем его как html в последний параграф, чтобы продемонстрировать, что у нас получился чистый текст. Обратите внимание, что пропало оформление жирным шрифтом красного цвета.</p>
<pre class="brush: jscript;">var str = $(&quot;p:first&quot;).text();
$(&quot;p:last&quot;).html(str);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_attributes/attr_text.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_attributes/attr_text.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>text(val)</h3>
<p>возвращает: jQuery<br />
Устанавливает текстовое содержимое для всех элементов набора. Очень похоже на html(), но экранирует HTML, заменяя например &laquo;&lt;&raquo; и &laquo;&gt;&raquo; их HTML сущностями.</p>
<p>В этом примере мы добавляем текст в параграф (обратите внимание, что тэги b экранируются).</p>
<pre class="brush: jscript;">$(&quot;p&quot;).text(&quot;&lt;b&gt;Some&lt;/b&gt; new text.&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_attributes/attr_text_val.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_attributes/attr_text_val.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Вставка внутрь:</h2>
<h3>append(content)</h3>
<p>возвращает: jQuery<br />
Добавляет контент внутрь всех выбранных элементов <strong>ПОСЛЕ</strong> существующего контента. Эта операция подобна применению appendChild.</p>
<p>В этом примере мы добавляем некий HTML-код в конец всех параграфов.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).append(&quot;&lt;strong&gt;ПРЕВЕД!&lt;/strong&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/append_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/append_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>appendTo(content)</h3>
<p>возвращает: jQuery<br />
Добавляет все выбранные элементы в другой набор элементов <strong>ПОСЛЕ</strong> существующего контента. Эта операция обратна использованию выражения $(A).append(B), которое добавляет B в A. Здесь же A будет добавлено в B. Просто сравните с примером append().</p>
<p>В этом примере все элементы span добавляются в элемент, который имеет атрибут id &laquo;foo&raquo;, <strong>ПОСЛЕ</strong> существующего там контента.</p>
<pre class="brush: jscript;">$(&quot;span&quot;).appendTo(&quot;#foo&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/appendTo_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/appendTo_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>prepend(content)</h3>
<p>возвращает: jQuery<br />
Добавляет контент внутрь всех выбранных элементов <strong>ДО</strong> существующего контента. Это наилучшее решение, чтобы вставлять элементы в самое начало.</p>
<p>В этом примере мы добавляем некий HTML-код в начало всех параграфов.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).prepend(&quot;&lt;strong&gt;ПРЕВЕД &lt;/strong&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/prepend_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/prepend_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>prependTo(content)</h3>
<p>возвращает: jQuery<br />
Добавляет все выбранные элементы в другой набор элементов <strong>ДО</strong> существующего контента. Эта операция обратна использованию выражения $(A).prepend(B), которое добавляет B в A. Здесь же A будет добавлено в B. Просто сравните с примером prepend().</p>
<p>В этом примере все элементы span добавляются в элемент, который имеет атрибут id &laquo;foo&raquo;, <strong>ДО</strong> существующего там контента.</p>
<pre class="brush: jscript;">$(&quot;span&quot;).prependTo(&quot;#foo&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/prependTo_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/prependTo_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Вставка снаружи:</h2>
<h3>after(content)</h3>
<p>возвращает: jQuery<br />
Вставляет контент <strong>ПОСЛЕ</strong> каждого выбранного элемента.</p>
<p>В примере вставляем некоторый HTML-код <strong>ПОСЛЕ</strong> всех параграфов.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).after(&quot;&lt;strong&gt;Hello&lt;/strong&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/after_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/after_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>before(content)</h3>
<p>возвращает: jQuery<br />
Вставляет контент <strong>ПЕРЕД</strong> каждым выбранным элементом.</p>
<p>В примере вставляем некоторый HTML-код <strong>ПЕРЕД</strong> всеми параграфами.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).before(&quot;&lt;strong&gt;Hello&lt;/strong&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/before_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/before_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>insertAfter(content)</h3>
<p>возвращает: jQuery<br />
Вставляет все выбранные элементы <strong>ПОСЛЕ</strong> других, определенных в insertAfter. Эта операция обратна использованию выражения $(A).after(B), где B вставляется после A. Здесь же А вставляется после В. Просто сравните с примером after().</p>
<p>В примере мы вставляем все параграфы <strong>ПОСЛЕ</strong> элемента, который имеет атрибут id &laquo;foo&raquo;. Тоже самое можно было бы сделать, написав: $(&laquo;#foo&raquo;).after(&laquo;p&raquo;)</p>
<pre class="brush: jscript;">$(&quot;p&quot;).insertAfter(&quot;#foo&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/insertAfter_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/insertAfter_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>insertBefore(content)</h3>
<p>возвращает: jQuery<br />
Вставляет все выбранные элементы <strong>ПЕРЕД</strong> другими, определенными в insertBefore. Эта операция обратна использованию выражения $(A).before(B), где B вставляется после A. Здесь же А вставляется после В. Просто сравните с примером before().</p>
<p>В этом примере мы вставляем все параграфы <strong>ПЕРЕД</strong> элементом, который имеет атрибут id &laquo;foo&raquo;. Тоже самое можно было бы сделать, написав: $(&laquo;#foo&raquo;).before(&laquo;p&raquo;)</p>
<pre class="brush: jscript;">$(&quot;p&quot;).insertBefore(&quot;#foo&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/insertBefore_content.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/insertBefore_content.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Обертывание:</h2>
<h3>wrap(html)</h3>
<p>возвращает: jQuery<br />
Оборачивает <strong>каждый</strong> элемент набора в элемент-обертку. Это может быть полезно при инъекции дополнительной структуры в документ, без нарушения оригинального семантического качества документа.</p>
<p>В этом примере оборачиваем новый элемент div вокруг <strong>каждого</strong> параграфа. В качестве аргумента выступает HTML-код.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).wrap(&quot;&lt;div&gt;&lt;/div&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/wrap_html.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/wrap_html.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>wrap(elem)</h3>
<p>возвращает: jQuery<br />
Оборачивает <strong>каждый</strong> элемент набора в единственный элемент-обертку.</p>
<p>В этом примере оборачиваем новый элемент div вокруг <strong>каждого</strong> параграфа. В качестве аргумента выступает вновь созданный элемент DOM.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).wrap(document.createElement(&quot;div&quot;));</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/wrap_elem.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/wrap_elem.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>wrapAll(html)</h3>
<p>возвращает: jQuery<br />
Оборачивает <strong>все</strong> элементы набора в единственный элемент-обертку. Это может быть полезно при инъекции дополнительной структуры в документ, без нарушения оригинального семантического качества документа.</p>
<p>В этом примере оборачиваем новый элемент div вокруг <strong>всех</strong> параграфов. В качестве аргумента выступает HTML-код.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).wrapAll(&quot;&lt;div&gt;&lt;/div&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/wrapAll_html.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/wrapAll_html.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>wrapAll(elem)</h3>
<p>возвращает: jQuery<br />
Оборачивает <strong>все</strong> элементы набора в единственный элемент-обертку.</p>
<p>В этом примере оборачиваем новый элемент div вокруг <strong>всех</strong> параграфов. В качестве аргумента выступает вновь созданный элемент DOM.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).wrapAll(document.createElement(&quot;div&quot;));</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/wrapAll_elem.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/wrapAll_elem.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>wrapInner(html)</h3>
<p>возвращает: jQuery<br />
Обертывает <strong>внутреннее содержимое</strong> каждого элемента набора (включая текстовые узлы) в HTML структуру. Это может быть полезно при инъекции дополнительной структуры в документ, без нарушения оригинального семантического качества документа.</p>
<p>В этом примере мы выбираем все параграфы и оборачиваем в тэг b их <strong>внутреннее содержимое</strong>. В качестве аргумента выступает HTML-код.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).wrapInner(&quot;&lt;b&gt;&lt;/b&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/wrapInner_html.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/wrapInner_html.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>wrapInner(elem)</h3>
<p>возвращает: jQuery<br />
Обертывает <strong>внутреннее содержимое</strong> каждого элемента набора (включая текстовые узлы) в элемент DOM.</p>
<p>В этом примере мы выбираем все параграфы и оборачиваем в тэг b их <strong>внутреннее содержимое</strong>. В качестве аргумента выступает вновь созданный элемент DOM.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).wrapInner(document.createElement(&quot;b&quot;));</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/wrapInner_elem.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/wrapInner_elem.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Замещение:</h2>
<h3>replaceWith(content)</h3>
<p>возвращает: jQuery<br />
Замещает все элементы набора HTML или DOM элементами.</p>
<p>В этом примере по клику на кнопке она замещается элементом div с таким же текстом, какой был на кнопке.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(this).replaceWith(&quot;&lt;div&gt;&quot; + $(this).text() + &quot;&lt;/div&gt;&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/replaceWith.html" style="border: medium none " height="150" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/replaceWith.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>replaceAll(selector)</h3>
<p>возвращает: jQuery<br />
Замещает все элемента, определенные в селекторе, указанным(и) элементами. Эта функция дополняет replaceWith(), которая решает ту же задачу, только наоборот.</p>
<p>В этом примере мы замещаем все параграфы текстом, заключенным в тэги b.</p>
<pre class="brush: jscript;">$(&quot;&lt;b&gt;Параграф.&lt;/b&gt;&quot;).replaceAll(&quot;p&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/replaceAll.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/replaceAll.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Удаление:</h2>
<h3>empty()</h3>
<p>возвращает: jQuery<br />
Удаляет все узлы-потомки (включая текстовые узлы) из набора элементов. Начиная с версии 1.2.2 также удаляет все обработчики событий и внутренние кэшированные данные.</p>
<p>В этом примере по клику на кнопке удаляем все узлы-потомки из всех параграфов.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;p&quot;).empty();
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/empty.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/empty.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>remove(expr)</h3>
<p>возвращает: jQuery<br />
Удаляет все выбранные элементы из DOM. Однако при этом они не будут удалены из объекта jQuery, что позволяет использовать их в будущем. Начиная с версии 1.2.2 также удаляет все обработчики событий и внутренние кэшированные данные. Таким образом</p>
<pre class="brush: jscript;">$(&quot;#foo&quot;).remove().appendTo(&quot;#bar&quot;);</pre>
<p>должен быть записан как</p>
<pre class="brush: jscript;">$(&quot;#foo&quot;).appendTo(&quot;#bar&quot;);</pre>
<p>чтобы избежать потери обработчика событий. Опционально может быть использовано фильтрующее выражение expr.</p>
<p>В этом примере по клику на кнопке мы удаляем все параграфы из DOM.</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function () {
  $(&quot;p&quot;).remove();
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/remove_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/remove_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Клонирование:</h2>
<h3>clone()</h3>
<p>возвращает: jQuery<br />
Клонирует выбранные элементы DOM и выбирает клонированные. Наверное немного непонятно, но  после рассмотрения примера будет намного яснее. Это полезно при перемещении копий элементов на другую позицию в объектной модели документа (DOM).</p>
<p>В этом примере мы клонируем все элементы b (и выбираем клонированные) и вставляем их перед параграфами.</p>
<pre class="brush: jscript;">$(&quot;b&quot;).clone().prependTo(&quot;p&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/clone.html" style="border: medium none " height="90" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/clone.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>clone(true)</h3>
<p>возвращает: jQuery<br />
Клонирует выбранные элементы DOM, и все их обработчики событий и выбирает клонированные. Это полезно при перемещении копий элементов и их обработчиков событий на другую позицию в объектной модели документа (DOM).</p>
<p>В этом примере мы создаем кнопку, которая может клонировать сама себя и иметь клонов, также способных себя же клонировать. Гм, попробуйте лучше понажимать эту кнопку&#8230;</p>
<pre class="brush: jscript;">$(&quot;button&quot;).click(function(){
  $(this).clone(true).insertAfter(this);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_manipulation/clone_true.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_manipulation/clone_true.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Ну вот и все&#8230; На сегодня. Потому что интересного в <strong>библиотеке jQuery</strong> еще очень и очень много.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/56.html/feed</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>jQuery API: Traversing &#8211; обход DOM.</title>
		<link>http://www.linkexchanger.su/2008/55.html</link>
		<comments>http://www.linkexchanger.su/2008/55.html#comments</comments>
		<pubDate>Thu, 22 May 2008 21:51:58 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[Traversing]]></category>
		<category><![CDATA[документация jQuery]]></category>
		<category><![CDATA[обход DOM]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/55.html</guid>
		<description><![CDATA[Очередная статья по документации jQuery. Мы разберем как библиотека jQuery позволяет работать с объектной моделью документа. Узнаем как изменять набор элементов DOM с помощью фильтров или поиска, а также научимся формировать и изменять цепочки вызовов для перемещения по объектной модели документа не только вперед, но и назад.
Фильтрация:
eq(index)
возвращает: jQuery
Уменьшает набор элементов до единственного элемента. Позиция элементов [...]]]></description>
			<content:encoded><![CDATA[<p>Очередная статья по <strong>документации jQuery</strong>. Мы разберем как библиотека jQuery позволяет работать с объектной моделью документа. Узнаем как изменять набор элементов DOM с помощью фильтров или поиска, а также научимся формировать и изменять цепочки вызовов для перемещения по объектной модели документа не только вперед, но и назад.<span id="more-55"></span></p>
<h2 style="color: #cc6600">Фильтрация:</h2>
<h3>eq(index)</h3>
<p>возвращает: jQuery<br />
Уменьшает набор элементов до единственного элемента. Позиция элементов в наборе считаются от 0 и до  length &#8211; 1.</p>
<p>В примере мы задаем элементу div с индексом 2 синий цвет фона путем добавления  класса с именем &laquo;blue&raquo;.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).eq(2).addClass(&quot;blue&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/eq_index.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/eq_index.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>hasClass(class)</h3>
<p>возвращает: Boolean<br />
Контролирует текущий набор элементов на наличие указанного класса и возвращает true, если по крайней мере один из элементов набора имеет указанный класс. Это в общем-то альтернатива синтаксису, когда класс указывается как .class</p>
<p>В этом примере, если клик совершен по элементу div имеющему класс &laquo;protected&raquo;, к нему применяется цепочка вызовов, которая заставляет этот элемент несколько раз сместиться влево-вправо.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).click(function(){
  if ( $(this).hasClass(&quot;protected&quot;) )
    $(this).animate({ left: -10 }, 75)
    .animate({ left: 10 }, 75)
    .animate({ left: -10 }, 75)
    .animate({ left: 10 }, 75)
    .animate({ left: 0 }, 75);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/hasclass.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/hasclass.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>filter(expr)</h3>
<p>возвращает: jQuery<br />
Удаляет все элементы из набора, которые не удовлетворяют требованиям выражения(ий). Этот метод используется, чтобы ограничить результаты поиска. Чтобы применить несколько фильтров одновременно, выражения надо отделить запятыми.</p>
<p>В этом примере мы выбираем все элементы div и устанавливаем им одинаковый фоновый цвет. Но только для элементов div, которые имеют класс с именем &laquo;middle&raquo; мы устанавливаем еще и рамку красного цвета.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).css(&quot;background&quot;, &quot;#c8ebcc&quot;)
  .filter(&quot;.middle&quot;)
  .css(&quot;border-color&quot;, &quot;red&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/filter_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/filter_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>filter(fn)</h3>
<p>возвращает: jQuery<br />
Удаляет все элементы из набора, которые не удовлетворяют требованиям функции. Функция вызывается в контексте каждого элемента в наборе (подобно $.each). Если функция возвращает false, элемент удаляется из набора, в случае true элемент сохраняется в наборе.</p>
<p>В этом примере мы изменяем цвет всех элементов div и затем добавляем двойную рамку красного цвета только тем из них, кто удовляетворяет требованиям. Т.е. элементу с индексом равным 1 и элементу, который имеет атрибут id=&raquo;fourth&raquo;.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).css(&quot;background&quot;, &quot;#b4b0da&quot;)
  .filter(function (index) {
    return index == 1 || $(this).attr(&quot;id&quot;) == &quot;fourth&quot;;
  }).css(&quot;border&quot;, &quot;3px double red&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/filter_fn.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/filter_fn.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>is(expr)</h3>
<p>возвращает: Boolean<br />
Проверяет текущий набор элементов на соответствие выражению и возвращает true, если хотя бы один из элементов в наборе соответствует выражению. Если нет подходящих элементов или выражение некорректно, возвращается false.</p>
<p>В примере показано несколько возможных вариантов использования is() внутри обработчика события.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).one('click', function () {
  if ($(this).is(&quot;:first-child&quot;)) {
    $(&quot;p&quot;).text(&quot;Это первый элемент div.&quot;);
  } else if ($(this).is(&quot;.blue,.red&quot;)) {
    $(&quot;p&quot;).text(&quot;Это синий или красный элемент div.&quot;);
  } else if ($(this).is(&quot;:contains('Петя')&quot;)) {
    $(&quot;p&quot;).text(&quot;Это Петя!&quot;);
  } else {
    $(&quot;p&quot;).html(&quot;А это ничего &lt;em&gt;особенного&lt;/em&gt;.&quot;);
  }
  $(&quot;p&quot;).hide().slideDown(&quot;slow&quot;);
  $(this).css({&quot;border-style&quot;:&quot;inset&quot;,cursor:&quot;default&quot;});
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/is_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/is_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>map(callback)</h3>
<p>возвращает: jQuery<br />
Переводит набор элементов объекта jQuery в другой набор, представляя его в виде массива. Это можно использовать, чтобы создавать списки значений, атрибутов, значений css. Или даже создавать специальный, пользовательский селектор.</p>
<p>В этом примере мы строим список всех значений формы и добавляем его в элемент p.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).append( $(&quot;input&quot;).map(function(){
  return $(this).val();
}).get().join(&quot;, &quot;) );</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/map_callback.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/map_callback.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>not(expr)</h3>
<p>возвращает: jQuery<br />
Удаляет из набора элементы, соответствующие выражению.</p>
<p>В примере добавляем красную рамку всем элементам div, кроме div зеленого или синего цвета.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).not(&quot;.green, #blueone&quot;)
              .css(&quot;border-color&quot;, &quot;red&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/not_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/not_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>slice(start, end)</h3>
<p>возвращает: jQuery<br />
Отбирает &laquo;поднабор&raquo; из набора элементов. Работает так же как и встроенный метод slice.</p>
<p>В этом примере часть элементов div окрашивается в желтый цвет случайным образом.</p>
<pre class="brush: jscript;">function colorEm() {
  var $div = $(&quot;div&quot;);
  var start = Math.floor(Math.random()
    * $div.length);
  var end = Math.floor(Math.random()
    * ($div.length - start)) + start + 1;
  if (end == $div.length) end = undefined;
  $div.css(&quot;background&quot;, &quot;&quot;);
  if (end)
    $div.slice(start, end)
    .css(&quot;background&quot;, &quot;yellow&quot;);
  else
    $div.slice(start)
    .css(&quot;background&quot;, &quot;yellow&quot;);
  $(&quot;span&quot;).text('$(&quot;div&quot;)
  .slice(' + start + (end ? ', ' + end : '') + ')
  .css(&quot;background&quot;, &quot;yellow&quot;);');
}
$(&quot;button&quot;).click(colorEm);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/slice.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/slice.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Поиск:</h2>
<h3>add(expr)</h3>
<p>возвращает: jQuery<br />
Добавляет в уже существующий набор дополнительные элементы, которые удовлетворяют выражению.<br />
В примере мы отыскиваем все элементы div и устанавливаем им рамку красного цвета. Затем добавляем все параграфы в уже существующий объект jQuery и устанавливаем фон желтого цвета. Обратите внимание, что для параграфа красная рамка не была установлена, поскольку эта операция выполнялась <strong>ДО</strong> добавления этих элементов в набор.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).css(&quot;border&quot;, &quot;2px solid red&quot;)
  .add(&quot;p&quot;)
  .css(&quot;background&quot;, &quot;yellow&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/add_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/add_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>children(expr)</h3>
<p>возвращает: jQuery<br />
Получает набор элементов, содержащий всех уникальных непосредственных потомков для каждого элемента набора. Этот набор может быть дополнительно отфильтрован с помощью выражения (опционально). Отметьте для себя, что в то время как parents() &laquo;видит&raquo; все родительские элементы, children() &laquo;видит&raquo; только непосредственных потомков.</p>
<p>В этом примере мы ищем всех непосредственных потомков элемента на котором был совершен клик.</p>
<pre class="brush: jscript;">$(&quot;#container&quot;).click(function (e) {
  $(&quot;*&quot;).removeClass(&quot;hilite&quot;);
  var $kids = $(e.target).children();
  var len = $kids.addClass(&quot;hilite&quot;).length;

  $(&quot;#results span:first&quot;).text(len);
  $(&quot;#results span:last&quot;).text(e.target.tagName);

  e.preventDefault();
  return false;
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/children_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/children_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>contents()</h3>
<p>возвращает: jQuery<br />
Отыскивает все дочерние узлы в наборе элементов (включая текстовые) или в содержимом документа, если он представлен как фрейм.</p>
<p>В примере мы отыскиваем все текстовые узлы в параграфе и &laquo;обертываем&raquo; их в тэг b.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).contents().not(&quot;[nodeType=1]&quot;).wrap(&quot;&lt;b/&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/contents.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/contents.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>find(expr)</h3>
<p>возвращает: jQuery<br />
Осуществляет поиск в наборе элементов, отыскивая те из них, которые удовлетворяют выражению. Это хороший способ отыскивать дополнительные потомки среди тех элементов, которые уже содержатся в наборе. Выражение может быть записано с использованием синтаксиса селекторов CSS 1-3.</p>
<p>В этом примере поиск элементов span производится в наборе всех элементов p. По другому это можно записать как $(&laquo;p span&raquo;)</p>
<pre class="brush: jscript;">$(&quot;p&quot;).find(&quot;span&quot;).css('color','red');</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/find_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/find_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>next(expr)</h3>
<p>возвращает: jQuery<br />
Получает набор элементов, содержащий уникальные сестринские элементы, следующие непосредственно за указанным элементом. Причем для всех элементов в наборе. Обратите внимание &#8211; именно следующий непосредственно за нужным элементом.</p>
<p>В этом примере мы отыскиваем сестринские элементы, следующие непосредственно за элементами button, которые имеют значение атрибута disabled = disabled и изменяем текст этих (следующих за кнопками) элементов на &laquo;this button is disabled&raquo;.</p>
<pre class="brush: jscript;">$(&quot;button[disabled]&quot;).next()
  .text(&quot;this button is disabled&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/next_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/next_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>nextAll(expr)</h3>
<p>возвращает: jQuery<br />
Отыскивает все сестринские элементы после текущего элемента. Опционально можно использовать выражение, чтобы дополнительно отфильтровать набор элементов.</p>
<p>В этом примере мы определяем все элементы div после первого и назначаем им класс с именем after.</p>
<pre class="brush: jscript;">$(&quot;div:first&quot;).nextAll().addClass(&quot;after&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/nextAll_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/nextAll_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>parent(expr)</h3>
<p>возвращает: jQuery<br />
Получает набор элементов, содержащий уникальных &laquo;родителей&raquo; для элементов набора. Опционально можно использовать выражение для дополнительной фильтрации.</p>
<p>В примере мы показываем &laquo;родителя&raquo; каждого элемента как (parent &gt; child).</p>
<pre class="brush: jscript;">$(&quot;*&quot;, document.body).each(function () {
  var parentTag = $(this).parent().get(0).tagName;
  $(this).prepend(document.createTextNode(parentTag + &quot; &gt; &quot;));
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/parent_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/parent_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>parents(expr)</h3>
<p>возвращает: jQuery<br />
Получает набор элементов, содержащий уникальных &laquo;предков&raquo; для элементов существующего набора (исключая корневой элемент). Опционально можно использовать выражение для дополнительной фильтрации.</p>
<p>В этом примере мы ищем все элементы-предки для содержимого элемента span, с помощью изученных ранее методов преобразуем эти данные в строку и добавляем к тэгу b.</p>
<pre class="brush: jscript;">var parentEls = $(&quot;b&quot;).parents()
  .map(function () {
    return this.tagName;
  }).get().join(&quot;, &quot;);
$(&quot;b&quot;).append(&quot;&lt;strong&gt;&quot; + parentEls + &quot;&lt;/strong&gt;&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/parents_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/parents_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>prev(expr)</h3>
<p>возвращает: jQuery<br />
Получает набор элементов, содержащий уникальные предыдущие сестринские элементы для всех элементов существующего набора. Опционально можно использовать выражение для дополнительной фильтрации. Обратите внимание, что возвращается только непосредственно предыдущий сестринский элемент.</p>
<p>В этом примере мы каждый раз по клику на кнопке находим непосредственно предыдущий сестринский элемент для каждого элемента div.</p>
<pre class="brush: jscript;">var $curr = $(&quot;#start&quot;);
$curr.css(&quot;background&quot;, &quot;#f99&quot;);
$(&quot;button&quot;).click(function () {
  $curr = $curr.prev();
  $(&quot;div&quot;).css(&quot;background&quot;, &quot;&quot;);
  $curr.css(&quot;background&quot;, &quot;#f99&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/prev_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/prev_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>prevAll(expr)</h3>
<p>возвращает: jQuery<br />
Отыскивает все сестринские элементы до текущего элемента. Опционально можно использовать выражение, чтобы дополнительно отфильтровать набор элементов.</p>
<p>В этом примере мы определяем все элементы div перед последним и назначаем им класс с именем before.</p>
<pre class="brush: jscript;">$(&quot;div:last&quot;).prevAll().addClass(&quot;before&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/prevAll_expr.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/prevAll_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>siblings(expr)</h3>
<p>возвращает: jQuery<br />
Получает набор элементов, содержащий все уникальные сестринские элементы для всех элементов существующего набора. Опционально можно использовать выражение, чтобы дополнительно отфильтровать набор элементов.</p>
<p>В примере мы ищем уникальные сестринские элементы для всех элементов li желтого цвета в трех списках (т.е. включая другие элементы li, если они подходят).</p>
<pre class="brush: jscript;">var len = $(&quot;.hilite&quot;).siblings()
  .css(&quot;color&quot;, &quot;red&quot;)
  .length;
$(&quot;b&quot;).text(len);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/siblings_expr.html" style="border: medium none " height="140" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/siblings_expr.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Формирование цепочки:</h2>
<h3>andSelf()</h3>
<p>возвращает: jQuery<br />
Добавляет предыдущий набор к текущему набору. Можно использовать при обходе элементов и затем добавлении чего-либо, что было отобрано в предыдущем обходе.</p>
<p>На примере будет понятнее: мы ищем все элементы div и все все элементы p внутри них, а затем назначаем им два имени класса. Но, обратите внимание, если в первой строке мы добавили к набору элементов p еще и предыдущий div (у всех появилась рамка красного цвета), то во второй строке мы добавили класс, определяющий цвет фона только для элементов p внутри div, но никак не для самого элемента div.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).find(&quot;p&quot;).andSelf().addClass(&quot;border&quot;);
$(&quot;div&quot;).find(&quot;p&quot;).addClass(&quot;background&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/andSelf.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/andSelf.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>end()</h3>
<p>возвращает: jQuery<br />
Возвращает набор элементов к его предыдущему состоянию, до последней &laquo;деструктивной&raquo; операции над набором элементов. Если же такой операции не производилось, будет возвращен пустой набор. &laquo;Деструктивная&raquo; операция &#8211; любая операция, изменяющая существующий набор элементов. Это все Traversing функции, которые возвращают объект jQuery (add, andSelf, children, filter, find, map, next, nextAll, not, parent, parents, prev, prevAll, siblings и slice), а также функция clone() из раздела Manipulation.</p>
<p>В этом примере: функция showTags &#8211; вспомогательная &#8211; получает набор элементов и преобразовывает его в строку названий элементов, а затем эта строка добавляется в элемент b, соответствующий номеру, который был передан в эту функцию. А самое интересное разберем по шагам:</p>
<ul>
<li>сначала мы выбираем все параграфы;</li>
<li>вызываем showTags с аргументом 0 и видим, что параграфов обнаружилось ровно 2 штуки;</li>
<li>отыскиваем все элементы span внутри параграфов;</li>
<li>вызываем showTags с аргументом 1 и видим, что span внутри p нашлось 5 штук;</li>
<li>походу зададим им css-свойство background (желтого цвета им!);</li>
<li>вот теперь и end() &#8211; вернулись к предыдущему набору (т.е. там, где p);</li>
<li>вызываем showTags с аргументом 2 и видим, что действительно вернулись &#8211; p = 2 штуки!;</li>
<li>последнее &#8211; применяем стиль italic для шрифта в параграфах &#8211; и действительно, все буквы наклонились, а не только в тэгах span, что еще раз подтверждает, что мы действительно вернулись к предыдущему набору.</li>
</ul>
<pre class="brush: jscript;">jQuery.fn.showTags = function (n) {
  var tags = this.map(function () {
    return this.tagName;
  })
  .get().join(&quot;, &quot;);
  $(&quot;b:eq(&quot; + n + &quot;)&quot;).text(tags);
  return this;
};
$(&quot;p&quot;).showTags(0)
  .find(&quot;span&quot;)
  .showTags(1)
  .css(&quot;background&quot;, &quot;yellow&quot;)
  .end()
  .showTags(2)
  .css(&quot;font-style&quot;, &quot;italic&quot;);</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_traversing/end.html" style="border: medium none " height="180" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_traversing/end.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Ну, наверное на сегодня достаточно. Продолжим в следующий раз, когда будем разбирать манипуляции с объектной моделью документа.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/55.html/feed</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
	</channel>
</rss>

