<?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/category/jquery-dokumentaciya/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 Templates plugin: Template Tags</title>
		<link>http://www.linkexchanger.su/2010/644.html</link>
		<comments>http://www.linkexchanger.su/2010/644.html#comments</comments>
		<pubDate>Tue, 09 Nov 2010 12:22:25 +0000</pubDate>
		<dc:creator>Андрей</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery Plugins]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/?p=644</guid>
		<description><![CDATA[В прошлой статье я рассказал основы использования плагина jQuery Templates plugin и обещал описать возможности синтаксиса шаблонов, чем сегодня и займусь. В этой статье помимо описания инструкций шаблонов будет много примеров, а в конце есть ссылка на демонстрационную страницу с &#171;живыми&#187; примерами &#8211; там их можно посмотреть, поредактировать, поэкспериментировать, попробовать собственные примеры.
Синтаксис шаблонов довольно функционален. [...]]]></description>
			<content:encoded><![CDATA[<p>В <a href="/2010/619.html">прошлой статье</a> я рассказал основы использования плагина <strong>jQuery Templates plugin</strong> и обещал описать возможности синтаксиса шаблонов, чем сегодня и займусь. В этой статье помимо описания инструкций шаблонов будет много примеров, а <a href="#demoLinks">в конце</a> есть ссылка на демонстрационную страницу с &laquo;живыми&raquo; примерами &#8211; там их можно посмотреть, поредактировать, поэкспериментировать, попробовать собственные примеры.</p>
<p>Синтаксис шаблонов довольно функционален. В теле шаблона разработчик может обращаться к полям объекта, к полям полей объекта, вызывать методы объекта и его полей, обращаться к внешним объектам JavaScript и jQuery, просто писать JS-выражения. Кроме всего этого внутри шаблона можно итеративно выводить коллекции, организовать условный вывод, использовать вложенные шаблоны. Но давайте обо всём по порядку.</p>
<p><span id="more-644"></span></p>
<h2>Примеры в статье</h2>
<p>Все примеры я буду приводить ключевыми кусками, чтобы не загромождать материал повторяющимися частями кода. В примере будут присутствовать <strong>текст шаблона</strong>, <strong>JSON данных</strong>, при необходимости <strong>JSON опций</strong> (параметр <strong><em>options</em></strong><em> </em>метода <strong><em>.tmpl( ) </em></strong>) и <strong>результат</strong>. В общем случае полный код примера будет выглядеть так:</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/x-jquery-tmpl&quot;&gt;
    &lt;li&gt; ЭТО ТЕКСТ ШАБЛОНА &lt;/li&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
var data = [
    // ЭТО МАССИВ ДАННЫХ
];
var options = {
    // ЭТО ОПЦИИ
};
$(function() {
    // ПРИМЕНЕНИЕ ШАБЛОНА И ВЫВОД РЕЗУЛЬТАТА:
    $('script[type=&quot;text/x-jquery-tmpl&quot;]').tmpl(data, options).appendTo($('.output').empty());
});
&lt;/script&gt;
&lt;ul class=&quot;output&quot;&gt;&lt;/ul&gt;
</pre>
<p>Так будет полностью выглядеть приведенный ниже <strong>пример 1.</strong>:</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/x-jquery-tmpl&quot;&gt;
    &lt;li&gt;${Name} ({{html Desc}}); вычисления: ${p1 + p2 + 10}&lt;/li&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
var data = [
    { Name: &quot;obj1&quot;, Desc: &quot;&lt;em&gt;Object one&lt;/em&gt;&quot;, p1: 1, p2: 10 },
    { Name: &quot;&lt;em&gt;obj2&lt;/em&gt;&quot;, Desc: &quot;&lt;strong&gt;Object two&lt;/strong&gt;&quot;, p1: 3.3, p2: 5 }
];
var options = {
};
$(function() {
    $('script[type=&quot;text/x-jquery-tmpl&quot;]').tmpl(data, options).appendTo($('.output').empty());
});
&lt;/script&gt;
&lt;ul class=&quot;output&quot;&gt;&lt;/ul&gt;
</pre>
<h2>Вставка данных в шаблон ${}, {{= }}, {{html }}</h2>
<p>С помощью этих инструкции можно вставить в шаблон значение поля объекта данных, результат работы метода или результат вычисления некоторого js-выражения, внутри инструкции можно обращаться к глобальным объектам JS, а также к служебным объектам, созданным при обработке шаблона.</p>
<p>Прежде чем перейти к примерам, хочу немного акцентировать внимание на сходстве и разнице этих инструкций. Все три инструкции предназначены для вывода результата в эту точку шаблона. <strong>${<em>expression</em>}</strong> и <strong>{{= <em>expression</em>}}</strong> эквивалентны (первая инструкция &#8211; это сокращённая форма второй), результат вставляется в шаблон в виде текста, если в тексте встречаются символы разметки (&lt;  &gt;  &amp; и пр.), то они будут заменены на соответствующие спецсимволы (&amp;lt;  &amp;gt;  &amp;amp; и пр.). Для вставки же разметки с сохранением html-кода нужно использовать инструкцию <strong>{{html <em>expression</em>}}</strong>.</p>
<h3>Пример 1. Вывод данных с разметкой и без</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;${Name} ({{html Desc}}); вычисления: ${p1 + p2 + 10}&lt;/li&gt;</pre>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { Name: &quot;obj1&quot;, Desc: &quot;&lt;em&gt;Object one&lt;/em&gt;&quot;, p1: 1, p2: 10 },
    { Name: &quot;&lt;em&gt;obj2&lt;/em&gt;&quot;, Desc: &quot;&lt;strong&gt;Object two&lt;/strong&gt;&quot;, p1: 3.3, p2: 5 }
]</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
    &lt;li&gt;obj1 (&lt;em&gt;Object one&lt;/em&gt;); вычисления: 21&lt;/li&gt;
    &lt;li&gt;&amp;lt;em&amp;gt;obj2&amp;lt;/em&amp;gt; (&lt;strong&gt;Object two&lt;/strong&gt;); вычисления: 18.3&lt;/li&gt;
&lt;/ul&gt;</pre>
<h2>Доступ к объектам и внутренние параметры шаблона</h2>
<p>Как я уже упоминал, внутри выражения можно обращаться к глобальным объектам и функциям JS, при этом шаблонизатор сам пытается определить, является указанное имя ссылкой на глобальный объект или на часть переданных данных. И конечно же, локальные данные имеют более высокий приоритет, чем глобальные. Давайте определим в документе глобальные объект testObj и функцию testFunc и попробуем их использовать:</p>
<pre class="brush: jscript;">var testObj = {
    Value: 1
};

function testFunc(i) {
    return i % 2 == 1;
}
</pre>
<h3>Пример 2. Использование глобальных объектов</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;${Name}; testObj.Value = ${testObj.Value}; testFunc(${p}) =&gt; ${testFunc(p)}&lt;/li&gt;</pre>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { Name: &quot;obj1&quot;, p: 3, testObj: { Value: 20 } },
    { Name: &quot;obj2&quot;, p: 13, testFunc: function(i) { return i + 7; } }
]</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
    &lt;li&gt;obj1; testObj.Value = 20; testFunc(3) =&amp;gt; true&lt;/li&gt;
    &lt;li&gt;obj2; testObj.Value = 1; testFunc(13) =&amp;gt; 20&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Внутри шаблона есть ещё доступ  к специальным объектам &#8211; внутренним параметрам шаблона: <strong>$item</strong> и <strong>$data</strong>.</p>
<p><strong>$item</strong> &#8211; представляет доступ к обрабатываемой в данный момент единице данных для вставки в шаблон, внутри этого объекта собраны и параметры, переданные пользователем, и дополнительные параметры из аргумента <em><strong>options</strong></em> функции <em><strong>.tmpl( )</strong></em>. Доступ к параметрам из данных осуществляется через вложенный объект <strong>.</strong><strong>data</strong>, а к параметрам аргумента <em><strong>options</strong></em> &#8211; напрямую, т.е. если вызвать <em><strong>$(&#8216;#myTmpl&#8217;).tmpl({ p1: 1 }, { p2: 2 })</strong></em>, то в шаблоне получить доступ к ним можно так: <em><strong>$item.data.p1</strong></em> и <em><strong>$item.p2</strong></em>.</p>
<p><strong>$data</strong> &#8211; это сокращённая версия доступа к данным, по сути это просто синоним для <em><strong>$item.data</strong></em>, в свете этого доступ в шаблоне к p1 и p2 из вызова в абзаце выше может быть таким: <em><strong>$data.p1</strong></em> и <em><strong>$item.p2</strong></em>.</p>
<h3>Пример 3. Параметр options</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;${Name}; p * 100 = ${$item.Method($data.p)}&lt;/li&gt;</pre>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { Name: &quot;obj1&quot;, p: 3.3 },
    { Name: &quot;obj2&quot;, p: 0.13 }
]</pre>
<p>Опции:</p>
<pre class="brush: jscript;">{ Method: function(i) { return i * 100; } }</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
    &lt;li&gt;obj1; p * 100 = 330&lt;/li&gt;
    &lt;li&gt;obj2; p * 100 = 13&lt;/li&gt;
&lt;/ul&gt;</pre>
<h2>Условная разметка в шаблоне {{if }} {{else}} {{/if}}</h2>
<p>Внутри шаблона можно отслеживать некие условия и в зависимости от них выводить тот или иной кусок. Для достижения этих целей применяются следующие комбинации инструкций:</p>
<p><strong>{{if <em>expression</em>}} tmplPart {{/if}}</strong> &#8211; простой вывод части шаблона, только если выражение истинно,<br />
<strong>{{if <em>expression</em>}} tmplPart1 {{else}} tmplPart2 {{/if}}</strong> &#8211; вывод части 1 или 2 в зависимости от истинности выражения,<br />
<strong>{{if <em>expr1</em>}} tmplPart1 {{else <em>expr2</em>}} tmplPart2 {{else}} tmplPart3</strong><strong> {{/if}}</strong> &#8211; это уже построение цепочки последовательных проверок (if .. else if .. else if .. else ..), понятное дело, что последний else без выражения необязателен. Думаю, тут всё понятно, давайте посмотрим простенький пример:</p>
<h3>Пример 4. Условный вывод</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;
{{if (
    (typeof(useFirstLastName) != &quot;undefined&quot; ? useFirstLastName : $item.defaultUseFirstLastName) &amp;&amp;
    $data.FirstName &amp;&amp; $data.LastName)}} ${FirstName + &quot; &quot; + LastName}
{{else $data.FullName}} ${FullName}
{{else $data.Name}} ${Name}
{{else}} ${$item.NoName}
{{/if}}
&lt;/li&gt;</pre>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { Name: &quot;obj1&quot;, FullName: &quot;Object 1&quot;, FirstName: &quot;Object&quot;, LastName: &quot;One&quot; },
    { FirstName: &quot;Object&quot;, LastName: &quot;Two&quot;, Name: &quot;obj2&quot;, useFirstLastName: true },
    { Title: &quot;object number 3&quot; }
]</pre>
<p>Опции:</p>
<pre class="brush: jscript;">{ NoName: &quot;[noname]&quot;, defaultUseFirstLastName: false }</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
    &lt;li&gt;  Object 1  &lt;/li&gt;
    &lt;li&gt;  Object Two  &lt;/li&gt;
    &lt;li&gt;  [noname]  &lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Поясню, что происходит в шаблоне. Под первым условием мы проверяем, нужно ли выводить имя объекта в виде конкатенации FirstName и LastName &#8211; при этом проверяется условие внутри объекта, если оно не определено, то условие в опциях, и требуется наличие обоих свойств. Обращаясь в условии к этим свойствам через параметр <em><strong>$data</strong></em>, гарантируем их наличие именно в переданных данных, а глобальные объекты при этом игнорируются. Во втором и третьем условиях проверяем последовательно свойства FullName и Name &#8211; выводим первое попавшееся, если нет ни одного из них, то выводим &laquo;заглушку&raquo; из опций.</p>
<h2>Итеративный обход с помощью {{each }}</h2>
<p>Думаю всем знакома функция jQuery <em><strong>.each(func)</strong></em> (а есть ещё и <em><strong>$.map(array, callback)</strong></em> ) и надеюсь многим знакома конструкция JS <em><strong>for (var key in obj)</strong></em> &#8211; эти выражения совершают итеративный обход элементов коллекции. В шаблонах тоже возможен вывод коллекций поэлементно и описывается он следующей инструкцией: <strong>{{each( <em>index</em>, <em>value </em>) <em>data</em>}} <em>tmplText </em>{{/each}}</strong>. <strong>index</strong> и <strong>value</strong> &#8211; это имена параметров (указываются без кавычек) для доступа соответственно к текущему индексу и значению в коллекции. Есть и сокращённая форма этой инструкции: <strong>{{each <em>data</em>}} <em>tmplText</em> {{/each}}</strong> &#8211; при этом в тексте шаблона к текущим индексу и значению можно обратиться по именам по умолчанию: <strong>$index</strong> и <strong>$value</strong>. Выражение <strong>data</strong> должно возвращать в результате массив или объект, объект будет обработан как словарь (коллекция пар имя-значение свойств объекта). Довольно слов, посмотрим на примере:</p>
<h3>Пример 5. Вывод массива</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;
    &lt;table border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;&gt;
        &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;n&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;${Expr}&lt;/th&gt;&lt;/tr&gt;
        {{each NumCollection}}
        &lt;tr&gt;&lt;td&gt;${$index}&lt;/td&gt;&lt;td&gt;${$value}&lt;/td&gt;&lt;/tr&gt;
        {{/each}}
        &lt;tr&gt;&lt;td&gt;${$item.EtcName}&lt;/td&gt;&lt;td&gt;${$item.EtcVal}&lt;/td&gt;&lt;/tr&gt;
    &lt;/table&gt;
&lt;/li&gt;</pre>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { Expr: &quot;2^n&quot;, NumCollection: [ 1, 2, 4, 8, 16 ] },
    { Expr: &quot;2n-1&quot;, NumCollection: [ 1, 3, 5, 7, 9 ] },
]</pre>
<p>Опции:</p>
<pre class="brush: jscript;">{ EtcName: &quot;etc.&quot;, EtcVal: &quot;...&quot; }</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
&lt;li&gt;
     &lt;table border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;&gt;
         &lt;tbody&gt;
             &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;n&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;2^n&lt;/th&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;etc.&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;/tr&gt;
         &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/li&gt;&lt;li&gt;
     &lt;table border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot;&gt;
         &lt;tbody&gt;
             &lt;tr&gt;&lt;th align=&quot;left&quot;&gt;n&lt;/th&gt;&lt;th align=&quot;left&quot;&gt;2n-1&lt;/th&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
             &lt;tr&gt;&lt;td&gt;etc.&lt;/td&gt;&lt;td&gt;...&lt;/td&gt;&lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;</pre>
<h3>Пример 6. Вывод объекта-словаря</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;
JSON = { {{each(key, val) $data}}{{if $item.f}},{{/if}} &quot;${key}&quot;: &quot;${val}&quot;{{if $item.f=true}}{{/if}}{{/each}} }
&lt;/li&gt;</pre>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { Name: &quot;obj1&quot;, FullName: &quot;Object 1&quot;, FirstName: &quot;Object&quot;, LastName: &quot;One&quot; },
    { FirstName: &quot;Object&quot;, LastName: &quot;Two&quot;, Name: &quot;obj2&quot; },
    { Title: &quot;object number 3&quot; }
]</pre>
<p>Опции:</p>
<pre class="brush: jscript;">{ f: false }</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
    &lt;li&gt; JSON = {  &quot;Name&quot;: &quot;obj1&quot;, &quot;FullName&quot;: &quot;Object 1&quot;, &quot;FirstName&quot;: &quot;Object&quot;, &quot;LastName&quot;: &quot;One&quot; } &lt;/li&gt;
    &lt;li&gt; JSON = {  &quot;FirstName&quot;: &quot;Object&quot;, &quot;LastName&quot;: &quot;Two&quot;, &quot;Name&quot;: &quot;obj2&quot; } &lt;/li&gt;
    &lt;li&gt; JSON = {  &quot;Title&quot;: &quot;object number 3&quot; } &lt;/li&gt;
&lt;/ul&gt;</pre>
<h2>Вывод шаблона в шаблоне {{tmpl }}</h2>
<p>Внутри шаблона можно использовать другие шаблоны, которые могут быть получены извне (селектором, функцией) или в виде разметки сгенерированной на месте (например, когда сами данные определяют в каком виде их надо вставить в шаблон).</p>
<p>Полный вид инструкции: <strong>{{tmpl(<em>data</em>, <em>options</em>) <em>template</em>}}</strong>.</p>
<p><em><span style="color: #ff0000">(На момент написания статьи в оф.документации показана сигнатура инструкции <span style="text-decoration: underline">{{tmpl( [data], [options] ) template}} content {{/tmpl}}</span> &#8211; это <strong>ОШИБКА</strong>, у этой инструкции нет закрывающего тега <span style="text-decoration: underline">{{/tmpl}}</span> и, соответственно, никакого содержания <span style="text-decoration: underline">content</span>)</span></em></p>
<p>Параметры <strong>data</strong> и <strong>options</strong> &#8211; являются необязательными и имеют то же назначение, что и в функции <em><strong>.tmpl(data, options)</strong></em>, если параметры опущены, то в качестве данных используется текущий объект данных <em><strong>$data</strong></em>, а <em><strong>options</strong></em> &#8211; пустой объект.<br />
Параметр <strong>template</strong> может принимать следующие значения: HTML-разметка, HTML- или jQuery-объект, строка, которая является именем скомпилированного шаблона или скомпилированный шаблон, также можно просто передать строку-селектор для jQuery (это недокументированная возможность, но она фигурирует в примерах).</p>
<h3>Пример 7. Использование сгенерированного шаблона</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt; {{tmpl $item.lt+tag+$item.gt+$item.tp+&quot;{content}&quot;+$item.lt+&quot;/&quot;+tag+$item.gt}} &lt;/li&gt;</pre>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { tag: &quot;strong&quot;, content: &quot;&lt;em&gt;Hello&lt;/em&gt;, &quot; },
    { tag: &quot;em&quot;, content: &quot;World!&quot; }
]</pre>
<p>Опции:</p>
<pre class="brush: jscript;">{ lt: &quot;&lt;&quot;, gt: &quot;&gt;&quot;, tp: &quot;$&quot; }</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
    &lt;li&gt; &lt;strong&gt;&amp;lt;em&amp;gt;Hello&amp;lt;/em&amp;gt;, &lt;/strong&gt; &lt;/li&gt;
    &lt;li&gt; &lt;em&gt;World!&lt;/em&gt; &lt;/li&gt;
&lt;/ul&gt;</pre>
<p>В шаблоне этого примера при генерировании вложенного шаблона используются строковые значение &laquo;&lt;&raquo;, &laquo;&gt;&raquo;, &laquo;$&raquo; в виде переменных, это сделано для того, чтобы они не воспринимались как разметка и инструкции внешним шаблоном.</p>
<h3>Пример 8. Использование шаблона внутри шаблона</h3>
<p>Шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;${Name} {{if Items}}&lt;ul&gt;{{tmpl(Items) '#tmplSelector'}}&lt;/ul&gt;{{/if}}&lt;/li&gt;</pre>
<p>Тут строку &#8216;#tmplSelector&#8217; &#8211; следует заменить на корректный селектор (или функцию) получения текущего шаблона. Для моих &laquo;живых&raquo; примеров можно использовать такой шаблон:</p>
<pre class="brush: xml;">&lt;li&gt;${Name} {{if Items}}&lt;ul&gt;{{tmpl(Items) $('#example8 script[type=&quot;text/x-jquery-tmpl&quot;]')}}&lt;/ul&gt;{{/if}}&lt;/li&gt;</pre>
<p>, в нём будет применен начальный шаблон, или</p>
<pre class="brush: xml;">&lt;li&gt;${Name} {{if Items}}&lt;ul&gt;{{tmpl(Items) $('#example8')[0].DemoData.Tmpl}}&lt;/ul&gt;{{/if}}&lt;/li&gt;</pre>
<p>, в нём будет применён отредактированный шаблон &#8211; полностью &laquo;живой&raquo; пример.</p>
<p>Данные:</p>
<pre class="brush: jscript;">[
    { Name: &quot;obj1&quot;, Items: [ { Name: &quot;obj11&quot;, Items: [ { Name: &quot;obj111&quot; }, { Name: &quot;obj112&quot; } ] }, { Name: &quot;obj12&quot; } ] },
    { Name: &quot;obj2&quot; }
]</pre>
<p>Опции:</p>
<pre class="brush: jscript;">{ }</pre>
<p>Результат:</p>
<pre class="brush: xml;">&lt;ul class=&quot;output&quot;&gt;
    &lt;li&gt;obj1 &lt;ul&gt;
        &lt;li&gt;obj11 &lt;ul&gt;
            &lt;li&gt;obj111 &lt;/li&gt;
            &lt;li&gt;obj112 &lt;/li&gt;
        &lt;/ul&gt;&lt;/li&gt;
        &lt;li&gt;obj12 &lt;/li&gt;
    &lt;/ul&gt;&lt;/li&gt;
    &lt;li&gt;obj2 &lt;/li&gt;
&lt;/ul&gt;</pre>
<p>В этом примере определён рекурсивный шаблон.</p>
<h2>Шаблон в шаблоне с HTML-содержанием внутри {{wrap }}</h2>
<p><strong>{{wrap (<em>data</em>, <em>options</em>) <em>template</em>}} <em>HTMLcontent </em>{{/wrap}}</strong> &#8211; эта инструкция очень похожа на инструкцию <em><strong>{{tmpl }}</strong></em>, её параметры <em><strong>data</strong></em>, <em><strong>options</strong></em> и <em><strong>template</strong></em> имеют то же назначение. Отличие инструкции <em><strong>{{wrap }}</strong></em> от <em><strong>{{tmpl }}</strong></em> в том, что она может включать HTML-содержание и затем это содержание можно использовать в применяемом шаблоне.</p>
<p>В шаблоне, который передаётся параметром <em><strong>template</strong></em>, можно достать HTML-разметку, заключённую между <em><strong>{{wrap }}</strong></em> и <em><strong>{{/wrap}}</strong></em> с помощью метода <em><strong>$item.html(filter, onlyText)</strong></em>. Первым аргументом можно наложить фильтр в виде селектора jQuery на выбираемые из разметки элементы, а вторым аргументом можно указать, что нужно в результате получить только текст верхнего выбранного элемента.</p>
<h3>Пример 9. Использование {{wrap }}</h3>
<pre class="brush: xml;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;style&gt;
table { border-collapse:collapse; width:380px; background-color:#f8f8f8; border:2px solid blue; margin:5px; } table td { border:1px solid blue; padding:3px; }
&lt;/style&gt;
  &lt;script src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
  &lt;script src=&quot;http://nje.github.com/jquery-tmpl/jquery.tmpl.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;script id=&quot;myTmpl&quot; type=&quot;text/x-jquery-tmpl&quot;&gt;
    The following wraps and reorders some HTML content:
    {{wrap &quot;#tableWrapper&quot;}}
        &lt;h3&gt;One&lt;/h3&gt;
        &lt;div&gt;
            First &lt;b&gt;content&lt;/b&gt;
        &lt;/div&gt;
        &lt;h3&gt;Two&lt;/h3&gt;
        &lt;div&gt;
            And &lt;em&gt;more&lt;/em&gt; &lt;b&gt;content&lt;/b&gt;...
        &lt;/div&gt;
    {{/wrap}}

    And this wraps different HTML content:
    {{wrap &quot;#tableWrapper&quot;}}
        &lt;div&gt;
            First &lt;b&gt;div&lt;/b&gt;
        &lt;/div&gt;
        &lt;div&gt;
            Second &lt;b&gt;div&lt;/b&gt;
        &lt;/div&gt;
        &lt;div&gt;
            Third &lt;b&gt;div&lt;/b&gt;
        &lt;/div&gt;
        &lt;h3&gt;first h3&lt;/h3&gt;
        &lt;h3&gt;second h3&lt;/h3&gt;
        &lt;h3&gt;third h3&lt;/h3&gt;
    {{/wrap}}
&lt;/script&gt;

&lt;script id=&quot;tableWrapper&quot; type=&quot;text/x-jquery-tmpl&quot;&gt;
    &lt;table&gt;&lt;tbody&gt;
        &lt;tr&gt;
            {{each $item.html(&quot;h3&quot;, true)}}
                &lt;td&gt;
                    ${$value}
                &lt;/td&gt;
            {{/each}}
        &lt;/tr&gt;
        &lt;tr&gt;
            {{each $item.html(&quot;div&quot;)}}
                &lt;td&gt;
                    {{html $value}}
                &lt;/td&gt;
            {{/each}}
        &lt;/tr&gt;
    &lt;/tbody&gt;&lt;/table&gt;
&lt;/script&gt;

&lt;div id=&quot;myWrappedView&quot;&gt;&lt;/div&gt;

&lt;script&gt;
$( &quot;#myTmpl&quot; ).tmpl()
    .appendTo( &quot;#myWrappedView&quot; );
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Этот пример взят со страницы оф. документации по этой инструкции шаблона. В &laquo;живых&raquo; примерах приведена переработанная под их специфику версия.</p>
<h2>Комментарии в шаблонах {{! }}</h2>
<p>В шаблонах можно вставлять комментарии разработчика, которые не будут попадать в результат, делается это очень просто, а именно так:</p>
<pre class="brush: xml;">{{! это текст комментария}}</pre>
<h2><a name="demoLinks"></a>&laquo;Живые&raquo; примеры из статьи</h2>
<p>По этому адресу страница доступна online: <a href="http://zalab.net/projects/jquery/demo/tmpl/" target="_blank">http://zalab.net/projects/jquery/demo/tmpl/</a><br />
А по этой ссылке можно загрузить эту страничку в архиве: <a href="http://www.linkexchanger.su/wp-content/uploads/2010/11/jq.tmpl_.live_.examples.zip">jq.tmpl.live.examples.zip (33 KB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2010/644.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Официальные плагины jQuery: Templates plugin</title>
		<link>http://www.linkexchanger.su/2010/619.html</link>
		<comments>http://www.linkexchanger.su/2010/619.html#comments</comments>
		<pubDate>Mon, 01 Nov 2010 13:13:03 +0000</pubDate>
		<dc:creator>Андрей</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[jQuery Plugins]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/?p=619</guid>
		<description><![CDATA[4 октября 2010 года была опубликована запись в официальном блоге jQuery об анонсе трёх плагинов jQuery, созданных при поддержке команды Microsoft. Эти плагины &#8211; плагин шаблонов (the jQuery Templates plugin), плагин привязки данных (the jQuery Data Link plugin) и плагин глобализации (the jQuery Globalization plugin) &#8211; получили статус “Официальные плагины проекта jQuery” (officially supported plugins [...]]]></description>
			<content:encoded><![CDATA[<p>4 октября 2010 года была опубликована <a href="http://blog.jquery.com/2010/10/04/new-official-jquery-plugins-provide-templating-data-linking-and-globalization/">запись в официальном блоге jQuery</a> об анонсе трёх плагинов jQuery, созданных при поддержке команды Microsoft. Эти плагины &#8211; <strong>плагин шаблонов (the jQuery Templates plugin)</strong>, <strong>плагин привязки данных (the jQuery Data Link plugin)</strong> и <strong>плагин глобализации (the jQuery Globalization plugin)</strong> &#8211; получили статус “Официальные плагины проекта jQuery” (officially supported plugins of the jQuery project).</p>
<p>Плагин шаблонов используется при необходимости вывести объект данных или массив объектов в разметку страницы. Плагин привязки данных нужен для связи объектов с элементами страницы и синхронного изменения значений. Плагин глобализации позволяет выводить такие данные, как числа, дата и время, сумма денег и т.п., на страницу в соответствии с форматом текущего языка.</p>
<p>Следует отметить, что команда Microsoft использовала свои немалые наработки в этих направлениях, как и команда проекта jQuery, и при хорошо сложившемся взаимодействии получились, на мой взгляд, отличные инструменты для разработчиков. В подтверждение моего мнения могу добавить, что разработчики jQuery анонсировали включение плагинов шаблонов и привязки данных в ядро библиотеки jQuery уже версии 1.5, а плагина глобализации &#8211; в соответствующую версию jQuery UI. Плагины пока ещё не получили статус релиза, но уже активно ведется написание документации на сайте <a href="http://api.jquery.com/">http://api.jquery.com</a>. К слову, команда Microsoft последовала традициям разработки jQuery и разместила материалы по разработке плагинов на github.com, где доступны описание и исходники плагинов.</p>
<p>В этой статье я расскажу немного о плагине шаблонов.<br />
<span id="more-619"></span></p>
<h2>jQuery Templates plugin</h2>
<p>Начнём с простенького примера:</p>
<pre class="brush: xml;">&lt;script id=&quot;movieTemplate&quot; type=&quot;text/x-jquery-tmpl&quot;&gt;
  &lt;li&gt;&lt;b&gt;${Name}&lt;/b&gt; (${ReleaseYear})&lt;/li&gt;
&lt;/script&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
var movies = [
  { Name: &quot;The Red Violin&quot;, ReleaseYear: &quot;1998&quot; },
  { Name: &quot;Eyes Wide Shut&quot;, ReleaseYear: &quot;1999&quot; },
  { Name: &quot;The Inheritance&quot;, ReleaseYear: &quot;1976&quot; }
];

$( &quot;#movieTemplate&quot; ).tmpl( movies )
    .appendTo( &quot;#movieList&quot; );
&lt;/script&gt;

&lt;ul id=&quot;movieList&quot;&gt;&lt;/ul&gt;</pre>
<p>Итак, в примере разработчик страницы описал шаблон для вывода объектов в виде разметки (первый элемент <strong><em>script</em></strong>), потом получил откуда-то массив объектов <strong><em>movies </em></strong>и вызвал инструкцию сгенерировать нужную разметку по шаблону, взяв данные из предоставленного массива объектов, а результат добавить в конец списка <strong><em>#movieList</em></strong>.<br />
В результате работы плагина мы получим такую разметку:</p>
<pre class="brush: xml;">&lt;ul id=&quot;movieList&quot;&gt;
  &lt;li&gt;&lt;b&gt;The Red Violin&lt;/b&gt; (1998)&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Eyes Wide Shut&lt;/b&gt; (1999)&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;The Inheritance&lt;/b&gt; (1976)&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>А теперь по сути вопроса.<br />
<strong> Что делает плагин?</strong><br />
Плагин получает на вход строку шаблона и множество объектов (или один объект), которые нужно вывести в строку (или разметку) с форматированием.<br />
<strong> Где это применяется?</strong><br />
В основном этот плагин полезен при динамическом выводе объектов JS на страницу, объекты могут быть получены самыми разными способами, например, при разчётах или по результатам каких-то действий пользователя и, конечно самый часто приводимый пример, в виде JSON в ответе сервера на AJAX запрос.</p>
<h3>Методы плагина</h3>
<p><strong><span style="text-decoration: underline">.tmpl( [ data ], [ options ] )</span></strong><br />
Получает содержимое первого выбранного элемента и использует его в качестве шаблона для форматированного вывода указанных данных.<br />
<strong><em> data </em></strong> &#8211; данные для вывода в шаблон (объект или массив объектов).<br />
<strong><em> options </em></strong> &#8211; опционально, определённое пользователем расширение в виде пар ключ-значение для объекта вывода в шаблон.<br />
<strong><span style="text-decoration: underline"> jQuery.tmpl(template, [ data ], [ options ])</span></strong><br />
Использует указанный шаблон для форматированного вывода указанных данных.<br />
<strong><em> template </em></strong> &#8211; шаблон для форматирования данных, может быть одного из следующих типов: строка с разметкой, HTML-элемент (в том числе и в jQuery-обёртке), строка, соответствующая имени ранее скомпилированного шаблона.<br />
<strong><em> data, options</em></strong> &#8211; имеют то же значение, что и выше<br />
<strong><span style="text-decoration: underline"> .tmplItem()</span></strong><br />
Возвращает для первого выбранного элемента структуру (объект) с результатами работы шаблонизатора. Возвращаемый методом объект обеспечивает доступ к:</p>
<ul>
<li> HTML-частям, из которых состоит шаблон</li>
<li> ассоциированной единице переданных данных</li>
<li> родительскому шаблону, если текущий шаблон является вложенным</li>
<li> текущему шаблону, использованному для вывода</li>
<li> определённому пользователем расширению (полям и методам), переданным в параметр options метода tmpl()</li>
</ul>
<p>Этот метод используется, напрмер, когда после проведенного форматирования данных требуется узнать, а какие же данные были использованы при формировании некоторого куска разметки, или для обновления куска разметки с использованием новых данных.<br />
<strong><span style="text-decoration: underline"> jQuery.tmplItem( element )</span></strong><br />
Аналогичен методу .tmplItem, только структура с результатами работы шаблонизатора ищется для элемента <strong><em>element </em></strong> (HTML-элемент, в том числе и в jQuery-обёртке).<br />
<strong><span style="text-decoration: underline"> .template( [ name ] )</span></strong><br />
Метод делает из содержимого первого выбранного элемента скомпилированную версию шаблона форматирования.<br />
<strong><em> name </em></strong> &#8211; необязательно имя шаблона, если имя указано, то потом можно использовать его для обращения к этому шаблону в методе <strong><em>jQuery.tmpl(name, data, options)</em></strong><br />
<strong><span style="text-decoration: underline"> jQuery.template( [ name, ] template )</span></strong><br />
Метод аналогичен описанному выше, только здесь шаблон передаётся в качестве параметра <strong><em>template </em></strong> &#8211; это может быть строка, строка с разметкой, HTML-элемент (в том числе и в jQuery-обёртке).</p>
<h3>Синтаксис шаблона</h3>
<p>Я вкратце приведу описание нескольких самых основных элементов шаблона, остальное надеюсь более подробно описать в следующей статье (если будет положительный отклик на эту статью)<br />
<strong><span style="text-decoration: underline"> ${fieldNameOrExpression} и {{= fieldNameOrExpression}}</span></strong><br />
Позволяет вставить в шаблон значение поля (свойства) объекта данных, может быть также использовано для вставки результата метода или js-выражения. Напрмер, <strong><em>&laquo;${Name}&raquo;</em></strong> &#8211; вставит в шаблон значение поля obj.Name, а при том, что Languages &#8211; это поле объекта, которому присвоен массив, <strong><em>&laquo;${Languages.length}&raquo;</em></strong> &#8211; вставит в шаблон длину этого массива, и наконец, если у объекта есть метод getLanguages с двумя параметрами, то <strong><em>&laquo;${getLanguages(Languages, &#8216; &#8211; &#8216;)}&raquo;</em></strong> &#8211; вставит в шаблон результат работы этого метода.<br />
<strong><span style="text-decoration: underline"> {{html fieldNameOrExpression}}</span></strong><br />
Элемент шаблона ${field} (или {{= field}}) вставляет в результат значение указанного поля в виде текста, т.е. если в строке будут HTML-теги, то они будут закодированы, а не преобразованы в разметку. Если вам требуется вставить данные в шаблон именно в виде HTML-разметки, то надо использовать синтаксис <strong><em>{{html &lt;что нужно вставить&gt;}}</em></strong>.<br />
Для начала работы с плагином уже достаточно рассказано, могу лишь добавить, что синтаксис шаблонов позволяет вставлять вложенные шаблоны, условные инструкции, обращаться к некоторым объектам JS и jQuery и ещё кое-что&#8230; Остальное &#8211; материал будущей статьи.</p>
<h3>Источники</h3>
<p>Статья написана по материалам, найденным во всемирной паутине. В основном это перевод официальной документации. Оригиналы можно посмотреть по следующим ссылкам:</p>
<ul>
<li> <a href="http://blog.jquery.com/2010/10/04/new-official-jquery-plugins-provide-templating-data-linking-and-globalization/"> Сообщение в блоге jQuery</a> и <a href="http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-and-globalization-accepted-as-official-jquery-plugins.aspx"> в блогах MS</a></li>
<li> <a href="http://api.jquery.com/category/plugins/templates/"> Страница документации плагина</a> (примеры взяты оттуда)</li>
</ul>
<h3>Об авторе</h3>
<p>Зовут меня Зайцев Андрей, <a href="http://blog.zalab.net/">мой маленький блог</a>, профиль на форуме <a href="http://linkexchanger.su/forum/memberlist.php?mode=viewprofile&amp;u=106">zandroid</a></p>
<p>Это моя первая статья в этом блоге, надеюсь, и не последняя <img src='http://www.linkexchanger.su/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Большое спасибо Геннадию за возможность публикации и за полезные советы по написанию и оформлению материала.</p>
<h3>Примеры</h3>
<p><strong>Пример 1: Динамическое переключение применяемого шаблона</strong></p>
<pre class="brush: xml;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;style&gt;
    table { cursor:pointer; border-collapse:collapse; border:2px solid blue; width:300px; margin:8px; }
    table tr { border:1px solid blue; color:blue; background-color:#f8f8f8; } table td { padding:3px; } table tr:hover { color:red; }
    .movieDetail { background-color:yellow; } .movieDetail.row1 { border-bottom:none; } .movieDetail.row2 { border-top:none; }
  &lt;/style&gt;
  &lt;script src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
  &lt;script src=&quot;http://nje.github.com/jquery-tmpl/jquery.tmpl.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;script id=&quot;summaryTemplate&quot; type=&quot;text/x-jquery-tmpl&quot;&gt;
  &lt;tr class='movieSummary'&gt;&lt;td colspan='2'&gt;${Name}&lt;/td&gt;&lt;/tr&gt;
&lt;/script&gt;

&lt;script id=&quot;detailTemplate&quot; type=&quot;text/x-jquery-tmpl&quot;&gt;
  &lt;tr class='movieDetail row1'&gt;&lt;td colspan='2'&gt;${Name}&lt;/td&gt;&lt;/tr&gt;&lt;tr class='movieDetail row2'&gt;&lt;td&gt;${ReleaseYear}&lt;/td&gt;&lt;td&gt;Director: ${Director}&lt;/td&gt;&lt;/tr&gt;
&lt;/script&gt;

Click for details:
&lt;table&gt;&lt;tbody id=&quot;movieList&quot;&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
var movies = [
  { Name: &quot;The Red Violin&quot;, ReleaseYear: &quot;1998&quot;, Director: &quot;François Girard&quot; },
  { Name: &quot;Eyes Wide Shut&quot;, ReleaseYear: &quot;1999&quot;, Director: &quot;Stanley Kubrick&quot; },
  { Name: &quot;The Inheritance&quot;, ReleaseYear: &quot;1976&quot;, Director: &quot;Mauro Bolognini&quot; }
];
var selectedItem = null;

/* Render the summaryTemplate with the &quot;movies&quot; data */
$( &quot;#summaryTemplate&quot; ).tmpl( movies ).appendTo( &quot;#movieList&quot; );

/* Add onclick handlers for movie template items
using the summary or details template */
$(&quot;#movieList&quot;)
  .delegate( &quot;.movieSummary&quot;, &quot;click&quot;, function () {
    if (selectedItem) {
      // Set the template on the previously selected item
      // back to the summary template
      selectedItem.tmpl = $( &quot;#summaryTemplate&quot; ).template();
      selectedItem.update();
    }
    /* Get the data structure for the template item
       which this clicked element belongs to, and make
       it the selected item */
    selectedItem = $.tmplItem(this);

    /* Set the template on this item to the detail template */
    selectedItem.tmpl = $( &quot;#detailTemplate&quot; ).template();
    selectedItem.update();
  })
  .delegate( &quot;.movieDetail&quot;, &quot;click&quot;, function () {
    /* Set the template on this item to the summary template */
    selectedItem.tmpl = $( &quot;#summaryTemplate&quot; ).template();
    selectedItem.update();
    selectedItem = null;
  });
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Довольно сложный и объемный, в нём используются сразу несколько методов плагина, взят с <a href="http://api.jquery.com/jquery.tmplitem/"> этой страницы</a>.</p>
<p><strong>Пример 2: Вставка данных с разметкой в шаблон</strong></p>
<pre class="brush: xml;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;style&gt;
    .role {font-weight:bold;font-style: italic;} #movieContainer {padding-left: 8px;}
  &lt;/style&gt;
  &lt;script src=&quot;http://code.jquery.com/jquery-latest.min.js&quot;&gt;&lt;/script&gt;
  &lt;script src=&quot;http://nje.github.com/jquery-tmpl/jquery.tmpl.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;script id=&quot;movieTemplate&quot; type=&quot;text/x-jquery-tmpl&quot;&gt;
  &lt;h4&gt;${Name}&lt;/h4&gt;
  &lt;p&gt;{{html Synopsis}}&lt;/p&gt;
&lt;/script&gt;

&lt;div id=&quot;movieContainer&quot;&gt;&lt;/div&gt;

&lt;script&gt;
/* The Synopsis data field contains HTML markup. */
var movie = {
  Name: &quot;Meet Joe Black&quot;,
  Synopsis: &quot;The &lt;span class='role'&gt;grim reaper&lt;/span&gt; (&lt;a href='http://www.netflix.com/RoleDisplay/Brad_Pitt/73919'&gt;Brad Pitt&lt;/a&gt;) visits &lt;span class='role'&gt;Bill Parrish&lt;/span&gt; (&lt;a href='http://www.netflix.com/RoleDisplay/Anthony_Hopkins/43014'&gt;Anthony Hopkins&lt;/a&gt;)...&quot;
};

/* Render the template with the movie data.
   The template uses the {{html}} template tag
   to  insert the Synopsis HTML markup data. */
$( &quot;#movieTemplate&quot; ).tmpl( movie )
  .appendTo( &quot;#movieContainer&quot; );
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>В этом примере в шаблон добавляются как простые строковые значения полей, так и значения с разметкой, взято вот с <a href="http://api.jquery.com/template-tag-html/"> этой страницы</a>.</p>
<h3>P.S.</h3>
<p>Примеры не стал расписывать, если аудитория поддержит мои начинания, то можно пошагово расписать что, как и почему, и привести ещё несколько примерчиков.</p>
<p>Вопросы по плагину прошу задавать на <a href="/forum/">форуме</a>, если есть комменты именно по статье &#8211; то комментируйте ниже.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2010/619.html/feed</wfw:commentRss>
		<slash:comments>11</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>
	</channel>
</rss>

