<?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>Уроки PHP, Mootools, JavaScript, ActionScript, HTML, CSS &#187; Mootools</title>
	<atom:link href="http://php.infoniac.ru/tag/mootools/feed" rel="self" type="application/rss+xml" />
	<link>http://php.infoniac.ru</link>
	<description>Уроки программирования от новичка новичкам</description>
	<lastBuildDate>Thu, 09 Sep 2010 18:22:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Слайдеры &#8211; Урок 14 &#8211; Уроки Mootools</title>
		<link>http://php.infoniac.ru/kak-sdelat-slaider-mootools-urok14.html</link>
		<comments>http://php.infoniac.ru/kak-sdelat-slaider-mootools-urok14.html#comments</comments>
		<pubDate>Tue, 07 Sep 2010 11:10:32 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[объекты mootools]]></category>
		<category><![CDATA[слайдер]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=670</guid>
		<description><![CDATA[Введение в слайдеры Если вы прочитали предыдущие уроки Mootools, то Вам должны быть уже более или менее понятны большинство объектов библиотеки Mootools. Объект Slider особо ничем не отличается от других: создаете новый слайдер (new Slider), определяете элементы слайдера и ручки, определяете параметры и создаете несколько функций для функций обратного вызова и, в принципе, всё. Но, [...]]]></description>
			<content:encoded><![CDATA[<h2>Введение в слайдеры</h2>
<p>Если вы прочитали предыдущие <a href="category уроки Mootools">уроки Mootools</a>, то Вам должны быть уже более или менее понятны большинство объектов библиотеки Mootools. Объект Slider особо ничем не отличается от других: создаете новый слайдер (new Slider), определяете элементы слайдера и ручки, определяете параметры и создаете несколько функций для функций обратного вызова и, в принципе, всё. Но, несмотря на то, что объект Slider и создается примерно по такому шаблону, есть несколько  вещей, которые обязательно нужно нам пройти.</p>
<h2>Основы</h2>
<h3>Создание нового объекта Slider</h3>
<p>Давайте сразу начнем с кода HTML и CSS. Основным тут является со  здание длинного, прямоугольного блока div (насколько длинный, зависит от того, для чего слайдер будет использоваться) и его дочернего элемента div, который будет служить &laquo;захватом&raquo; слайдера.</p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!--Вертикальный слайдер--&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;slider&quot;</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;knob&quot;</span>&gt;</span><span style="color: #ddbb00;">&amp;nbsp;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>



<p>А код CSS будет выглядеть немного позамысловатее: </p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*Общий стиль для всего слайдера*/</span>
<span style="color: #cc00cc;">#slider</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">/*Я использовал заранее подготовленные рисунки
    сделанные в великом и могучем Фотошопе*/</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'images/slider_body_h.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #3333ff;">:repeat-</span>x<span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">150px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #808080; font-style: italic;">/*Стиль &quot;захвата&quot;-ползунка*/</span>
<span style="color: #cc00cc;">#knob</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">100</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'images/knob-20.png'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #3333ff;">:no-</span>repeat<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>



<p>Теперь можно смело создавать новый объект Slider, для чего вначале создаем переменные с элементами и потом создаем новый (&laquo;<strong>new</strong>&laquo;) объект slider, также, как мы это делали с объектами <strong>tween</strong>, <strong>drag.move</strong> и <strong>morph</strong>:</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//создаем переменные для наших блоков</span>
<span style="color: #003366; font-weight: bold;">var</span> sliderObject <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slider'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> knobObject <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'knob'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 
<span style="color: #006600; font-style: italic;">//создаем новый объект slider</span>
<span style="color: #006600; font-style: italic;">//но вначале, определяем элементы слайдера</span>
<span style="color: #006600; font-style: italic;">//а потом определяем объект захвата</span>
<span style="color: #003366; font-weight: bold;">var</span> SliderObject <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Slider<span style="color: #009900;">&#40;</span>sliderObject <span style="color: #339933;">,</span> knobObject <span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//а вот и параметры</span>
    <span style="color: #006600; font-style: italic;">//ниже каждый из них рассматривается более подробно</span>
    range<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
    snap<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
    steps<span style="color: #339933;">:</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>
    offset<span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
    wheel<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
    mode<span style="color: #339933;">:</span> <span style="color: #3366CC;">'horizontal'</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">//событие onchange запускается тогда, когда значение параметра step изменится</span>
    <span style="color: #006600; font-style: italic;">//и передаст текущее значение этому параметру</span>
    onChange<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>step<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//сюда вставляем код того, что должно произойти по событию onchange</span>
        <span style="color: #006600; font-style: italic;">//можно ссылаться на параметр step</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">//событие onTick передвигается, когда пользователь передвигает захват </span>
    <span style="color: #006600; font-style: italic;">//и передаст текущее положение (относительно родительского элемента)</span>
    onTick<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>pos<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//это необходимо для того, чтобы захват настроился</span>
        <span style="color: #006600; font-style: italic;">//ниже остановимся на этом вопросе более подробно</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">knob</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span> pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #006600; font-style: italic;">//срабатывает, когда ползунок останавливается</span>
    <span style="color: #006600; font-style: italic;">//и пользователь &quot;отпускает&quot; его</span>
    onComplete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>step<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">//сюда вставляем код того, что должно произойти по событию onComplete</span>
        <span style="color: #006600; font-style: italic;">//можно ссылаться на параметр step</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Немного грубовато все получилось, но, надеюсь, далее все прояснится.</p>
<h3>Параметры объекта Slider</h3>
<ul>
<li><strong>snap</strong> &#8211; захват (по умолчанию &#8211; <em>false</em>): булев тип (думаю, все знают, что это такое). Определяет то, будет ли бегунок закрепляться за шагами по мере передвижения по слайдеру (тут немного запутано, но попробую объяснить этот пункт немного дальше).</li>
<li><strong>offset</strong> &#8211; сбвиг (по умолчанию &#8211; <em>0</em>): относительный сдвиг захвата от первоначального положения. С этим параметром нужно поэкспериментировать, чтобы понять его назначение <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</li>
<li><strong>range</strong> &#8211; диапазон (по умолчанию &#8211; <em>false</em>): Очень полезный параметр. Можно назначить диапазон значений, на которые будут разбиваться шаги (параметр steps). Например, если был указан диапазон [0, 200], а параметр steps (шаги) имеет значение 10, то расстояние между шагами будет равно 20. Диапазон может также включать в себя отрицательные числа, например [-10, 0], что оказывается очень полезным при инвертировании скроллера (дальше больше&copy; <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</li>
<li><strong>wheel</strong> (по умолчанию &#8211; <em>false</em>): если установить параметр на true, то объект будет распознавать движения колеса мышки. При исползовании колёсика мышки, возможно нужно будет скорректировать диапазон, чтобы убедиться в том, что событие <em>mousewheel</em> не будет инвертировано (и снова дальше больше&copy;).</li>
<li><strong>steps</strong> &#8211; шаги (по умолчанию &#8211; <em>100</em>): Значение в 100 шагов очень удобно, так как его можно использовать как процентное соотношение. Однако, можно назначить столько, шагов, сколько душе угодно (в разумных пределах, конечно).</li>
<li><strong>mode</strong> &#8211; режим (по умолчанию &#8211; &#8216;horizontal&#8217; &#8211; горизонтально): Режим определяет будет ли слайдер вертикальным или горизонтальным. Хотя, для того, чтобы сделать слайдер вертикальным или горизонтальным, нужно будет проделать еще несколько шагов.</li></ul>
<h3>Функции по событиям</h3>
<ul><li><strong>onChange</strong>: это событие запускается, когда текущий шаг изменяет свое значение. Передает новое значение параметра &laquo;step&raquo;.</li>
<li><strong>onTick</strong>: срабатывает, когда измеяется положение бегунка. Передает новое значение параметра &laquo;position&raquo;.</li>
<li><strong>onComplete</strong>: запускается, когда пользователь отпускает бегунок. Передает новое значение параметра &laquo;step&raquo;.</li></ul>
<p>Для лучшего понимания за что отвечает каждое событие и когда каждое из них изменяется, смотрите на пример ниже.</p>
<h2>И самое вкусное &#8211; пример</h2>
<p>Итак, давайте создадим, наконец, свой слайдер, который расставит все новые знания по полочкам.</p>
<h3>.set();</h3>
<p>Посмотрев на событие на элементе <strong>button</strong> и мы увидим метод <strong>.set()</strong> в действии. Он очень прост в использовании: просто вызываем слайдер, добавляем к нему метод .set() и шаг, с которым мы будем двигать бегунок.


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> SliderObject <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Slider<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slider-h'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'knob-h'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
    	<span style="color: #006600; font-style: italic;">//параметры</span>
		range<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
		snap<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		steps<span style="color: #339933;">:</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>
		offset<span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
		wheel<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
		mode<span style="color: #339933;">:</span> <span style="color: #3366CC;">'horizontal'</span><span style="color: #339933;">,</span>
&nbsp;
		<span style="color: #006600; font-style: italic;">//функции для ползунковых событий</span>
	    onChange<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>step<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'change'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">highlight</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#F3F825'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'steps_number'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html'</span><span style="color: #339933;">,</span> step<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    	onTick<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>pos<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'tick'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">highlight</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#F3F825'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'knob_pos'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html'</span><span style="color: #339933;">,</span> pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #006600; font-style: italic;">//эта строчка очень нужна (при горизонтальном режиме изменяется параметр left)</span>
        	<span style="color: #006600; font-style: italic;">//она заменяет значение соответствующего параметра</span>
	        <span style="color: #006600; font-style: italic;">//на значение текущего места &quot;сброса&quot; ползунка пользователем</span>
			<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">knob</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span> pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 	    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    	<span style="color: #006600; font-style: italic;">//функиция, запускаемая при завершении перетаскивания ползунка</span>
	    onComplete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>step<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'complete'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">highlight</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#F3F825'</span><span style="color: #009900;">&#41;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'steps_complete_number'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html'</span><span style="color: #339933;">,</span> step<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span>step<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//вертикальный слайдер</span>
	<span style="color: #003366; font-weight: bold;">var</span> SliderObjectV <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Slider<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'slider-v'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'knob-v'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
		range<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
		snap<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
		steps<span style="color: #339933;">:</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">,</span>
		offset<span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
		wheel<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span>
		mode<span style="color: #339933;">:</span> <span style="color: #3366CC;">'vertical'</span><span style="color: #339933;">,</span>
    	onTick<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>pos<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #006600; font-style: italic;">//эта строчка очень нужна (при горизонтальном режиме изменяется параметр top)</span>
    	    <span style="color: #006600; font-style: italic;">//она заменяет значение соответствующего параметра</span>
        	<span style="color: #006600; font-style: italic;">//на значение текущего места &quot;сброса&quot; ползунка пользователем</span>
	        <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">knob</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'top'</span><span style="color: #339933;">,</span> pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    	<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
		onChange<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>step<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'stepsV_number'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html'</span><span style="color: #339933;">,</span> step<span style="color: #339933;">*-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 	<span style="color: #006600; font-style: italic;">//устанавливает начальную точку вертикального слайдера на 0 (ноль)</span>
	<span style="color: #006600; font-style: italic;">//иначе, начальной точкой была бы верхняя точка слайдера</span>
	SliderObjectV.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//устанавливает шаг слайдера на 7</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'set_knob'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> SliderObject.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">7</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>




<div id="slider_wrap">
	<div id="change" class="indicator">
		<strong>onChange</strong><br />
        передаёт шаг, на котором Вы находитесь: <span id="steps_number"></span>
	</div>
	<div id="tick" class="indicator">
		<strong>onTick</strong><br />
		передаёт положение ползунка: <span id="knob_pos"></span>
    </div>
	<div id="complete" class="indicator">
    	<strong>onComplete</strong><br />
        передаёт текущий шаг: <span id="steps_complete_number"></span>
    </div>
	<div id="slider-h">
		<div id="knob-h">&nbsp;</div>
	</div><br />
	<button id="set_knob">Установить ползунок на 7-й шаг</button><br />
	<div id="slider-v">
		<div id="knob-v">&nbsp;</div>
	</div>
    <span id="stepsV_number"></span>
</div>



</p><p>Обратите внимание на пример с вертикальным слайдером: мы не только изменяем параметр &laquo;<em>mode</em>&raquo; (режим) на &laquo;<em>vertical</em>&raquo; (вертикальный), но мы также используем свойство стиля &laquo;<em>top</em>&raquo; вместо &laquo;<em>left</em>&raquo; в событии onTick, и передаем ему новое значение с помощью функции <strong>.setStyle()</strong>. Далее, при отображении числа для события onChange, мы умножаем его на -1 (минус один), что делает из отрицательного числа, положительное (если кто помнит базовую математику <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Это позволяет сделать две вещи: первое &#8211; заменить 10 на 0, где 0 &#8211; нижняя точка слайдера. Практически такого же результата, в принципе, можно добиться и установив параметр &laquo;range&raquo; на [10,0], но, при этом, колесо мышки будет работать наоборот. И это подводит нас ко второй вещи: только так можно заставить скрипт правильно понимать движение колеса мышки, ведь оно получает значения, а не слова (&laquo;vertical/horizontal&raquo;), а если пропустить первую &laquo;вещь&raquo; (с умножением на -1), то колесо прокрутки становится инвертированным. А проделав такой незамысловатый трюк, можно добиться правильного движения колеса прокрутки И получить правильные значения, где 0 (ноль) &#8211; минимальное значение, находящееся внизу.</p>
<p>К сожалению, не я это все придумал, а программист сайта ConsiderOpen.com, потому тут еще следует заметить, что этот трюк с умножением на -1 &#8211; это решение одного человека. Если Вам известен путь сделать тоже самое, но меньшими усилиями, все будут рады, если Вы этим поделитесь!</p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/kak-sdelat-slaider-mootools-urok14.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Перемещение/Передвижение с помощью класса Drag.Move – Урок 12</title>
		<link>http://php.infoniac.ru/mootools-drag-move-objects-tut12.html</link>
		<comments>http://php.infoniac.ru/mootools-drag-move-objects-tut12.html#comments</comments>
		<pubDate>Mon, 01 Mar 2010 19:59:17 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[drag]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[интерактив]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=592</guid>
		<description><![CDATA[По моему мнению, верх интерактивности, это когда пользователь сайта может не просто ввести текст в определенную форму, а когда он сам может изменять дизайн, например, сам определять те или иные параметры внешнего вида сайта или использовать перетаскивание для заполнения своей покупательской корзины, например. Перетаскивание - один из самых мощных инструментов JavaScript и библиотек на его основе. Поклонники "высшего пилотажа", те кто стремится сделать свои скрипты супер быстрыми и оптимизированными, скажут, что нужно всегда использовать Javascript для создания кода, но библиотеки сделаны не просто для развлечения. Да, написав код на JavaScript, вы сделаете свой скрипт самым быстрым насколько это возможно (конечно, в зависимости от уместности использования тех или иных функций/методов), но такие библиотеки, как Mootools, jQuery, Prototype и др. призваны облегчить жизнь веб-программиста: они сделали создание специальных эффектов и интерактивности на сайте довольно простым, что и должен будет доказать этот урок. Итак, учимся создавать перетаскиваемые объекты с помощью классов Drag и Drag.Move.]]></description>
			<content:encoded><![CDATA[<h2>Drag.Move – Перемещение с помощью Mootools 1.2</h2>
<p>С 10-го урока я начал публиковать уроки, посвященные спец. эффектам, которые можно создавать с помощью библиотеки Mootools. Если Вы еще не взглянули в эти уроки, очень рекомендую <a href="http://php.infoniac.ru/fx-morph-fx-options-fx-events-day11.html">посмотреть</a>.</p>
<p>В сегодняшнем уроке мы поставим под прицел класс Drag.Move – очень сильный инструмент, который позволяет добавить возможность перемещения/перетаскивания элементов на странице. Вообще, эта возможность – это одна из моих самых любимых функций JavaScript и всех библиотек на его основе.</p>
<p>Используется этот класс также, как и все остальные плагины библиотеки: создается новый (<em>«new»</em>) объект Drag.Move и назначается переменной. Далее назначаются параметры и события объекта. В принципе, это и есть вся основа. Кстати, объекты Drag и Drag.Move не определены в основной библиотеке, потом нужно будет создавать свою собственную сборку Mootools с помощью <a title="Mootools More Builder" href="http://mootools.net/more" target="_blank">онлайн инструмента</a> на сайте разработчиков.</p>
<h2>Основы</h2>
<h3>Drag.Move</h3>
<p>Установка перетаскиваемого элемента довольно проста. Давайте рассмотрим пример ниже. Обратите внимание, как отделяются параметры и события класса <em>Drag.Move</em> от событий и параметров класса <em>Drag</em>. Drag.Move расширяет и дополняет класс Drag, потому он будет принимать не только свои параметры и события, но и те, что относятся к классу Drag. Сегодня мы не будем углубляться в работу Drag, но мы взглянем на несколько его интересных параметров и событий.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	        <span style="color: rgb(0, 102, 0); font-style: italic;">// параметры класса Drag.Move</span>
		droppables<span style="color: rgb(51, 153, 51);">:</span> dropElement<span style="color: rgb(51, 153, 51);">,</span>
		container<span style="color: rgb(51, 153, 51);">:</span> dragContainer<span style="color: rgb(51, 153, 51);">,</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// параметры класса Drag</span>
		handle<span style="color: rgb(51, 153, 51);">:</span> dragHandle<span style="color: rgb(51, 153, 51);">,</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// событие класса Drag.Move</span>
		onDrop<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(51, 153, 51);">,</span> dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
                        <span style="color: rgb(0, 102, 0); font-style: italic;">// вызовет предупреждение с атрибутом id сброшенного элемента</span>
                        <span style="color: rgb(0, 102, 0); font-style: italic;">// в элемент, принимающий сброшенные элементы</span>
                        <span style="color: rgb(0, 102, 0); font-style: italic;">// (это может показаться запутанным, на первый взглад, но, надеюсь,</span>
                        <span style="color: rgb(0, 102, 0); font-style: italic;">// далее все проясниться</span>
                        <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>dr.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
                <span style="color: rgb(0, 102, 0); font-style: italic;">// События Drag</span>
                <span style="color: rgb(0, 102, 0); font-style: italic;">// передаются перетаскиваемому элементу</span>
                onComplete<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>el.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
		<span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Разберем всё это по полочкам…</p>
<h3>Параметры Drag.Move</h3>
<p>Параметры Drag.Move позволяют назначить два основных типа элементов:</p>
<ul>
<li><strong>droppables</strong> – опеределяет элементы, которые будут способны «принять» сброшенный элемент</li>
<li><strong>container</strong> – установить контейнер перетаскиваемого элемента (будет удерживать элемент внутри этого элемента-контейнера)</li>
</ul>
<p>Установка параметров доволно проста:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//определяем один элемент по id, который можно будет перетаскивать</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragElement <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_element'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//определяем массив элементов по их классу, которые смогут принят сброшенный элемент</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dropElements <span style="color: rgb(51, 153, 51);">=</span> $$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'.drag_element'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//определяем контейнер</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragContainer <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_container'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//определяем объект Drag.Move</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement <span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	        <span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag.Move</span>
                <span style="color: rgb(0, 102, 0); font-style: italic;">// назначаем элементу droppables массив элементов, определённых немного выше</span>
		droppables<span style="color: rgb(51, 153, 51);">:</span> dropElements <span style="color: rgb(51, 153, 51);">,</span>
               <span style="color: rgb(0, 102, 0); font-style: italic;">// назначаем элементу container элемент, определенный немного выше</span>
		container<span style="color: rgb(51, 153, 51);">:</span> dragContainer
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Теперь наш перетаскиваемый элемент имеет свой контейнер, а также у нас имеется класс элементов, который будет принимать сбросы других элементов. Тут можно провести аналогию с современными аэропортами: не все аэропорты предназначены для принятия и обслуживания определенных типов самолётов. Так и в нашем случае: необходимо определить, какой класс сможет принимать «на посадку» перетаскиваемые элементы.</p>
<h3>События объекта Drag.Move</h3>
<p>События этого объекта дают возможность запускать определенные заранее функции в определенные этапы существования объекта, как например в тот момент, когда пользователь «совершил захват» передвигаемого элемента, когда он начинает его передвигать или когда он его сбрасывает. События объекта Drag.Move передаются каждому перетаскиваемому и сбрасывамому элементу в качестве параметров.</p>
<ul>
<li><strong>onDrop</strong> – запускается при сбросе элемента в соответствующий принимающий элемент;</li>
<li><strong>onLeave</strong> – запускается когда перетаскиваемый элемент покидает границы элемента, способного принимать перетаскиваемые элементы;</li>
<li><strong>onEnter</strong> – запускается при входе перетаскиваемого элемента в зону принимающего элемента.</li>
</ul>
<p>Как и <a href="http://php.infoniac.ru/mootools-tutorial-day-5-events.html">любые другие события</a>, которые мы до этого обсуждали, события объекта Drag.Move вызывают функцию, которая выполняется когда событие исполняется.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragContainer <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_container'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement <span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag.Move</span>
	droppables<span style="color: rgb(51, 153, 51);">:</span> dropElements <span style="color: rgb(51, 153, 51);">,</span>
	container<span style="color: rgb(51, 153, 51);">:</span> dragContainer <span style="color: rgb(51, 153, 51);">,</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">// События Drag.Move</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">// функции Drag.Move передадут перетаскиваемый элемент (в данном случае 'el')</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">// принимающему элементу, с которым перетаскиваемый взаимодействует (у нас 'dr')</span>
	onDrop<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(51, 153, 51);">,</span> dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// на русском: "если элемента, на который происходит сброс НЕ ЯВЛЯЕТСЯ принимающий"</span>
		<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 153, 51);">!</span>dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			<span style="color: rgb(0, 102, 0); font-style: italic;">//ничего не делать</span>
		<span style="color: rgb(0, 153, 0);">}</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// в противном случае, т.е. элемент принимающий</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// делать то-то, то-то</span>
		<span style="color: rgb(0, 0, 102); font-weight: bold;">else</span> <span style="color: rgb(0, 153, 0);">{</span>
			<span style="color: rgb(0, 102, 0); font-style: italic;">// действия, который произойдут,</span>
			<span style="color: rgb(0, 102, 0); font-style: italic;">// когда элемента будет сброшен на принимающий элемент</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
	onLeave<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(51, 153, 51);">,</span> dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// эта функция будет запущена, когда перетаскиваемый элемент</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// покинет границы принимающего элемента</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
	onEnter<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(51, 153, 51);">,</span> dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// эта функция будет запущена, когда перетаскиваемый элемент</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// входит в границы принимающего элемента</span>
	<span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h3>Несколько событий объекта Drag</h3>
<p>У объекта Drag есть совсем немного событий и параметров, но и я не все буду рассматривать:</p>
<h4>Параметр – snap</h4>
<p>Параметр <strong>snap</strong> позволяет определить, на сколько пикселей пользователь должен передвинуть курсор прежде чем начнется сам процесс перемещения элемента. Значение по умолчанию – 6, но можно указать любое число или переменную, содержащую число. Конечно же, существуют некие логические рамки (установив это значение на 1000, никакой пользы не принесешь своему приложению), но все-таки этот параметр может сослужить хорошую службу разработчику при улучшении своего приложения.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement <span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	        <span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag</span>
		snap<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(204, 0, 0);">10</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h4>Параметр – handle</h4>
<p>Данный параметр добавляет &laquo;ручку&raquo; к вашему перетаскиваемому элементу. Эта «ручка» определяет единственную область элемента, которой можно воспользоваться для &laquo;захвата&raquo; перетаскиваемого элемента, что позволяет использовать оставшуюся часть элемента для других целей. Для определения &laquo;ручки&raquo;, просто вызовите элемент.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">// определяет массив элементов по классу</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">// это позволит нам добавить несколько "ручек",</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">// если нам нужно будет определять несколько передвигаемых элементов</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragHandle <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_handle'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement <span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	        <span style="color: rgb(0, 102, 0); font-style: italic;">// параметры Drag</span>
		handle<span style="color: rgb(51, 153, 51);">:</span> dragHandle
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h4>Событие onStart</h4>
<p>Событие <strong>onStart</strong> определяет функцию, которая будет запускаться при начале перетаскивания. Если значение параметра <strong>snap</strong> установлено большое, то событие не начнется до тех пор, пока заданное количество пикселей не будет пройдено.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement <span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	        <span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag</span>
		onStart<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
                    <span style="color: rgb(0, 102, 0); font-style: italic;">// сюда вставляем всё, что должно произойти вначале перетаскивания</span>
               <span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h4>Событие – onDrag</h4>
<p>Событие <strong>onDrag</strong> будет работать постоянно во время перетаскивания элемента.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement <span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	        <span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag</span>
		onDrag<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
                    <span style="color: rgb(0, 102, 0); font-style: italic;">// сюда вставляем всё, что должно происходить во время перетаскивания</span>
               <span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h4>Событие onComplete</h4>
<p>Событие <strong>onComplete</strong> запускается когда происходит сброс перетаскиваемого элемента и оно будет запущено вне зависимости от того, будет этот элемент приземлен в элементе droppable или нет.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement <span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	        <span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag</span>
		onComplete<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
                    <span style="color: rgb(0, 102, 0); font-style: italic;">// сюда вставляем всё, что должно произойти при сбросе элемента</span>
               <span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h2>Примеры</h2>
<p>Снова подошло время моей любимой части любого урока: Пример!</p>
<p>Давайте, для упрощения процесса переваривания всей информации этого урока, соорудим пример, который бы содержал максимум из представленных параметров, событий и т.д. Поехали!</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragElement <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_me'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragContainer <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_cont'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragHandle <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_me_handle'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dropElement <span style="color: rgb(51, 153, 51);">=</span> $$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'.draggable'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> startEl <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'start'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> completeEl <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'complete'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dragIndicatorEl <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drag_ind'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> enterDrop <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'enter'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> leaveDrop <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'leave'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> dropDrop <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'drop_in_droppable'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> 
&nbsp;
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> myDrag <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Drag.<span style="color: rgb(102, 0, 102);">Move</span><span style="color: rgb(0, 153, 0);">(</span>dragElement<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
	    <span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag.Move</span>
		droppables<span style="color: rgb(51, 153, 51);">:</span> dropElement<span style="color: rgb(51, 153, 51);">,</span>
		container<span style="color: rgb(51, 153, 51);">:</span> dragContainer<span style="color: rgb(51, 153, 51);">,</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// Параметры Drag</span>
		handle<span style="color: rgb(51, 153, 51);">:</span> dragHandle<span style="color: rgb(51, 153, 51);">,</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// События Drag.Move</span>
		onDrop<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(51, 153, 51);">,</span> dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 153, 51);">!</span>dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span> <span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
        	        <span style="color: rgb(0, 0, 102); font-weight: bold;">else</span> <span style="color: rgb(0, 153, 0);">{</span>
				dropDrop.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#FB911C'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает оранжевым</span>
				el.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#fff'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает белым</span>
				dr.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#667C4A'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает зеленым</span>
			<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
		onLeave<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(51, 153, 51);">,</span> dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			leaveDrop.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#FB911C'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает оранжевым</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
		onEnter<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(51, 153, 51);">,</span> dr<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			enterDrop.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#FB911C'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает оранжевым</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">// Drag Events</span>
		onStart<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			startEl.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#FB911C'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает оранжевым</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
		onDrag<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			dragIndicatorEl.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#FB911C'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает оранжевым</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">,</span>
		onComplete<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>el<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
			completeEl.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#FB911C'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> <span style="color: rgb(0, 102, 0); font-style: italic;">//мигает оранжевым</span>
		<span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>В этом примере, в отличие от большинства ранее представленных, мы будем серьезно использовать CSS, потому нужно добавить некоторые пояснения к таблице CSS. Для того, чтобы контейнер Drag.Move нормально определялся в IE, нужно будет подробно объяснить позиционирование элементов этому популярному браузеру. Очень важно определить элементу-контейнеру «position:relative», а перетаскиваемому элементу «position:absolute». Далее нужно удостовериться в том, что знаяения «left» и «top» для этого элемента тажке установлены. Ну, а если вы создаете приложение с перетаскиваемыми элементами, которое никоим образом не предназначается для IE, можете вообще не обращать внимание на эту часть.</p>
<div class="wp_syntax">
<div class="code">
<pre class="css" style="font-family: monospace;">body <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">margin</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 102, 204);">0</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">padding</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 102, 204);">0</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(128, 128, 128); font-style: italic;">/* убедитесь в том, что перетаскиваемый элемент умеет "position: absolute"
 а параметры top и left установлены на значения для первоначального положения элемента*/</span>
<span style="color: rgb(204, 0, 204);">#drag_me</span> <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">width</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">100px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">height</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">100px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">background-color</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 0, 204);">#333</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">position</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">absolute</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">top</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 102, 204);">0</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">left</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 102, 204);">0</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(204, 0, 204);">#drop_here</span> <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">width</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">200px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">height</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">200px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">background-color</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 0, 204);">#eee</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(128, 128, 128); font-style: italic;">/* убедитесь в том, что элемент-контейнер имеет "position:relative" */</span>
<span style="color: rgb(204, 0, 204);">#drag_cont</span> <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">background-color</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 0, 204);">#ccc</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">height</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">600px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">width</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">500px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">position</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">relative</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">margin-top</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">100px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">margin-left</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">100px</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(204, 0, 204);">#drag_me_handle</span> <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">width</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);"><span style="color: rgb(204, 102, 204);">100</span>%</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">height</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">auto</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">background-color</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 0, 204);">#666</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">cursor</span><span style="color: rgb(0, 170, 0);">:</span>move<span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(204, 0, 204);">#drag_me_handle</span> span <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">display</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">block</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">padding</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">5px</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(102, 102, 255);">.indicator</span> <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">width</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);"><span style="color: rgb(204, 102, 204);">100</span>%</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">height</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">auto</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">background-color</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 0, 204);">#0066FF</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">border-bottom</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">1px</span> <span style="color: rgb(153, 51, 51);">solid</span> <span style="color: rgb(204, 0, 204);">#eee</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(102, 102, 255);">.indicator</span> span <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">padding</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">10px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">font-size</span><span style="color: rgb(0, 170, 0);">:</span><span style="color: rgb(153, 51, 51);">14px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">display</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">block</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span>
&nbsp;
<span style="color: rgb(102, 102, 255);">.draggable</span> <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">width</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">200px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">height</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">200px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">background-color</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(0, 0, 0); font-weight: bold;">blue</span><span style="color: rgb(0, 170, 0);">;</span>
<span style="color: rgb(0, 170, 0);">}</span></pre>
</p></div>
</div>
<p>Далее следует HTML код, который создаст нам плацдарм для восхощения возможностями Mootools.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"drag_cont"</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"start"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"indicator"</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>Начало<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"drag_ind"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"indicator"</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>Перетаскивание<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"complete"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"indicator"</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>Завершен<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"enter"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"indicator"</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>Вход в принимающий элемент<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"leave"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"indicator"</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>Выход из принимающего элемента<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"drop_in_droppable"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"indicator"</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>Сброшен в принимающий элемент<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"drag_me"</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"drag_me_handle"</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>ручка<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"drop_here"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"draggable"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</p></div>
</div>
<div id="drag_cont">
<div style="background-color: rgb(0, 102, 255);" id="start" class="indicator"><span>Начало</span></div>
<div style="background-color: rgb(0, 102, 255);" id="drag_ind" class="indicator"><span>Перетаскивание</span></div>
<div style="background-color: rgb(0, 102, 255);" id="complete" class="indicator"><span>Завершен</span></div>
<div style="background-color: rgb(0, 102, 255);" id="enter" class="indicator"><span>Вход в принимающий элемент</span></div>
<div style="background-color: rgb(0, 102, 255);" id="leave" class="indicator"><span>Выход из принимающего элемента</span></div>
<div style="background-color: rgb(0, 102, 255);" id="drop_in_droppable" class="indicator"><span>Сброшен в принимающий элемент</span></div>
<div style="position: absolute; left: 59px; top: 279px; background-color: rgb(51, 51, 51);" id="drag_me">
<div id="drag_me_handle"><span>ручка</span></div>
</p></div>
<div style="background-color: rgb(238, 238, 238);" id="drop_here" class="draggable"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-drag-move-objects-tut12.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Спец. Эффекты в Mootools – Уроки Mootools – Урок 10</title>
		<link>http://php.infoniac.ru/mootorials-special-effects-day10.html</link>
		<comments>http://php.infoniac.ru/mootorials-special-effects-day10.html#comments</comments>
		<pubDate>Mon, 07 Dec 2009 18:26:24 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[уроки mootools]]></category>
		<category><![CDATA[эффекты]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=582</guid>
		<description><![CDATA[Библиотека Mootools, будучу основанной на Javascript, имеет довольно серьезные средвства для создание простынх и не очень спец. эффектов для придания красоты и удобства использования страницы пользователем. В этом уроке речь пойдет оь одной из самых интересных (мне лично) сторон Javascript и Mootools в частности - создание и управление спец. эффектами. Сейчас мы поговорим о самых простых эффектах, таких, как изменение размера, формы, цвета элемента, но чем дальше мы зайдем, тем больше всего интересного узнаем. Интрига? Тогда читаем дальше!]]></description>
			<content:encoded><![CDATA[<p>Еще раз добро пожаловать в наш класс по изучению библиотеки Mootools 1.2. Если вы пришли сюда впервые, советую посмотреть и предыдущие уроки, особенно, если вы не совсем знакомы с этой библиотекой (внизу страницы, около комментариев есть специальная ссылка).</p>
<p>Итак, сегодня мы рассмотрим возможности создания спец. эффектов в Mootools из библиотеки эффектов Fx.Tween. Функции этого дополнения, как и многие другие функции библиотеки, очень просты в применении, но при этом дают разработчикам очень большую свободу действий, позволяя улучшить эстетичность веб-приложений и конечно же «юзабилити» (очень модное слово сегодня в интернете; в переводе с англицкого: <strong>usability</strong> – «<em>удобство (ис)пользования</em>«).</p>
<h2>Быстрые спец.эффекты</h2>
<p>Обычно я начинаю с основ той или иной темы, но функции работы со спец. эффектами так просты в использовании, что не могу удержаться от того, чтобы именно их поставить на передовую рассмотрения.</p>
<h3>.tween();</h3>
<p>Английское слово <em>tween</em> означает мягкий переход из одного свойства в другое. В нашем случае можно сказать, что переход осуществляется от одного значения свойства, к другому. Например можно сделать так, чтобы блок <strong>div</strong> мягко и красиво растянулся с ‘width:100px’ до ‘width:300px’. А фреймворк Mootools позаботился о том,<br />
  чтобы создание таких эффектов не занимало более секунды!</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//создаем функцию</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenerFunction  <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//выбираем элемент, над которым будем издеваться</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//и добавляем к нему .tween</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//а в качестве атрибутов добавляем свойство, которое будет изменяться</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//и значение на которое это свойство нужно мягко изменить</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">tween</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'300px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут мы добавляем прослушку на определенное событие (в нашем случае click)</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//к кнопке, которая должна вызвать эффект</span>
        $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tween_button'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> tweenerFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Ну а HTML код для этой функции выглядит так:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"tween_button"</span>&gt;</span>растянуть до 300 px<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;</span></pre>
</p></div>
</div>
<h3>.fade();</h3>
<p>Еще одна потрясающая функция, которая позволяет тонко настроить прозрачность элемента. А настройка выглядит примерно также, как показано в коде выше:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//создаем функцию</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenFadeFifty <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
       <span style="color: rgb(0, 102, 0); font-style: italic;">//выбираем объект</span>
       <span style="color: rgb(0, 102, 0); font-style: italic;">//добавляем к нему .fade</span>
       <span style="color: rgb(0, 102, 0); font-style: italic;">//и задаем значение между 0 и 1, к которому нужно привести прозрачность элемента</span>
       <span style="color: rgb(0, 102, 0); font-style: italic;">//(0 - невидимка, 1 - полный видимка)</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">fade</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'.5'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут мы добавляем прослушку на определенное событие (в нашем случае click)</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//к кнопке, которая должна вызвать эффект</span>
        $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tween_fade_fifty'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> tweenFadeFifty<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Вот и HTML код:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"tween_fade_fifty"</span>&gt;</span>Снижаем видимость до 50%<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;</span></pre>
</p></div>
</div>
<h3>.highlight();</h3>
<p>Снова не могу обойтись без слова «замечательная»! <strong>.highlight()</strong> – это замечательная функция! Она очень узконаправленная, при этом также очень полезна. Она имеет две функции:</p>
<ol>
<li>Использование для мягкого перехода к иному цвету фона (можно посмотреть пример немногой ниже).</li>
<li>Мгновенно изменяет цвет фона, потом мягко переходит к другому цвету.</li>
</ol>
<p>Если спросите, зачем вообще тратить время на создание и потом еще и изучение таких функции, могу сказать в их оправдание, что они очень полезны, когда создаешь обратную связь с пользователями. Например, можно привлечь внимание к определенному элементу, когда что-нибудь выделяется; или изменяете цвет, потом этот цвет вспыхивает когда элемент  сохраняется и закрывается. Вообще, возможностей уйма. Все зависит от опыта и воображения разработчика.</p>
<p>А пока предлагаю рассмотреть пример использования функции. Создадим два блока <strong>div</strong>, и применим к ним оба типа функции <strong>.highlight()</strong>.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//создаем функцию</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenHighlight <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>event<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут мы будем использовать конструкцию, которую пока еще не использовали - event.target</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//которая будет передаваться как параметр функции</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//на человеческом языке это звучит как "цель события"</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//а так как эффект применим к тому же элементу, к которому прикреплена прослушка на событие</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//не нужно будет снова создавать селектор.</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//обратите внимание, что addEvent автоматически передаст объект события в качестве параметра</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//в функцию, которую вызывает... оч полезно <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span>
	event.<span style="color: rgb(102, 0, 102);">target</span>.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#eaea16'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//создаем вторую функцию</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//тут нужно передать сразу параметр</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//так как функция будет вызываться при определенном событии</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//и ей в параметры автоматически припишут событие (как в функции выше)</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//а элемент можно вызывать с помощью конструкции .target</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//(цель события)</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenHighlightChange <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 0, 102); font-weight: bold;">item</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут, вместо одного значения цвета, через запятую добавляем второй цвет</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//что установит первый цвет, и целевой цвет перехода</span>
        <span style="color: rgb(0, 0, 102); font-weight: bold;">item</span>.<span style="color: rgb(102, 0, 102);">target</span>.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#eaea16'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'#333333'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseover'</span><span style="color: rgb(51, 153, 51);">,</span> tweenHighlight<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweenerChange'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseover'</span><span style="color: rgb(51, 153, 51);">,</span> tweenHighlightChange<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h3>Вкусные примеры</h3>
<p>Вот она – самая интересная часть любого урока. Помните, еще со школы – все что там училка трындит, очень часто кажется бессмыслицей, но если правильно подобрать пример – все обретает очень четкий смысл. Вот они наши примеры. Понажимайте на кнопки в разном порядке и обратите внимание на поведение объекта:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenerFunction  <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">tween</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'300px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenerGoBack  <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">tween</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'100px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//функция .fade еще принимает ключевые слова 'out' и 'in',</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//что эквивалентно 0 и 1 соответственно</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenFadeOut <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">fade</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'out'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenFadeFifty <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">fade</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'.5'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenFadeIn <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">fade</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'in'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> tweenHighlight <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>event<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	event.<span style="color: rgb(102, 0, 102);">target</span>.<span style="color: rgb(102, 0, 102);">highlight</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'#eaea16'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tween_button'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> tweenerFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tween_reset'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> tweenerGoBack<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tween_fade_out'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> tweenFadeOut<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tween_fade_fifty'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> tweenFadeFifty<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tween_fade_in'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> tweenFadeIn<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tweener'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseover'</span><span style="color: rgb(51, 153, 51);">,</span>tweenHighlight<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>При наведении курсора, кстати, работает первый тип функции <strong>.highlight()</strong>.</p>
</p>
<div id="tweener"></div>
<p><span class="pseudobutton" id="tween_button">Ширина 300</span> &#8212; <span class="pseudobutton" id="tween_reset">Ширина 100</span> &#8212; <span class="pseudobutton" id="tween_fade_out">В невидимку</span> &#8212; <span class="pseudobutton" id="tween_fade_fifty">На половину видно/невидно</span> &#8212; <span class="pseudobutton" id="tween_fade_in">Видимка</span></p>
<p>А этот одинокий квадратик иллюстрирует работу второго типа функции <strong>.highlight()</strong>.</p>
<div id="tweenerChange" style="border: 1px solid black; background-color: rgb(255, 255, 255); width: 100px; height: 100px;"></div>
<h2>И это еще не всё…</h2>
<h3>Создание нового эффекта</h3>
<p>Если потребовалось больше гибкости в управлении эффектами, или еще какие-то дополнительные возможности, а такое бывает, скажу я вам,  нужно будет всего навсего создать новый эффект, вместо использования уже имеющихся эффектов в Mootools. Ниже пример создания нового эффекта. Обратите внимание на ключевое слово <strong>new</strong>, которое используется для создания нового объекта Fx.Tween:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//вначале назначаем объект, над которым собираемся издеваться своим новым эффектом,</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//и назначаем этот объект новой переменной</span>
        <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newTweenElement <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'newTween'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
       <span style="color: rgb(0, 102, 0); font-style: italic;">//теперь создаем новый эффект, которому передаем переменную с объектом в качестве параметра</span>
       <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newTween <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Fx.<span style="color: rgb(102, 0, 102);">Tween</span><span style="color: rgb(0, 153, 0);">(</span>newTweenElement<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"newTween"</span>&gt;</span><span style="color: rgb(128, 128, 128); font-style: italic;">&lt;!-- это элемент, к которому применим новый Tween эффект--&gt;</span><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(128, 128, 128); font-style: italic;">&lt;!-- а это кнопка, которая очень скоро сыграет свою главную роль --&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"netTween_set"</span>&gt;</span>Назначить<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;</span></pre>
</p></div>
</div>
<h3>Установка стилей</h3>
<p>При создании нового объекта Tween из элемента, можно начинать назначать свойства стилей с помощью функции <strong>.set();</strong>. Эта функция работает моментально и прицип ее работы практически ничем не отличается от <strong>.setStyle();</strong>, рассмотренной нами в <a title="Манипулирование стилями элементов страницы с помощью Mootools" href="http://php.infoniac.ru/mootools-day7-styles.html">7-м уроке</a>:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newTweenSet <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//обратите внимание на использование ключевого слова "this"</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//немного далее рассмотрю более подробно использование этого слова</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'300px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</p></div>
</div>
<p>Когда-то, уже очень давно, я говорил, что определять функции нужно за пределами события domready, но в этом случае, мы создадим эффект внутри этого события, после чего сошлемся на него извне. Мы уже также как-то говорили о том, как можно передавать параметры извне события domready (путем созания анонимной функции).</p>
<h3>.bind()</h3>
<p>С помощью функции <strong>.bind();</strong> можно сделать любой параметр равным ключевому слову &laquo;<strong>this</strong>&raquo; в спектре работы определенной функции:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//вначале добавляем событие клика к кнопке, которую видели немного выше</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//потом, помимо простого вызова функции</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//мы добавляем к ней ".bind()"</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//и помещаем в скобки все, что мы хотим передать этой функции</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//и теперь, внутри функции "newTweenSet," ключевое слово "this"</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//будет относиться к переменной "newTween"</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'netTween_set'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> newTweenSet.<span style="color: rgb(102, 0, 102);">bind</span><span style="color: rgb(0, 153, 0);">(</span>newTween<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Таким образом, если взглянем на функцию выше, &laquo;this&raquo; теперь ровняется тому, что мы говорим «newTween» (который, по совместительству, и является нашим объектом классса tween)</p>
<p>А теперь, соединим все это в единое целое:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//вот наша функция</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newTweenSet <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//так как мы использовали bind, "this" теперь относится к "newTween"</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//т.е. на самом деле мы говорим</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//newTween.set('width', '300px')</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">this</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'300px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//вначале назначаем нашему элементу переменную</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newTweenElement <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'newTween'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
    <span style="color: rgb(0, 102, 0); font-style: italic;">//потом создаем новый эффект FX.Tween и назначаем его своей собственной переменной</span>
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newTween <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Fx.<span style="color: rgb(102, 0, 102);">Tween</span><span style="color: rgb(0, 153, 0);">(</span>newTweenElement<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
    <span style="color: rgb(0, 102, 0); font-style: italic;">//а сейчас добавляем наше событие, в котором связываем newTween и newTweenSet с помощью bind</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'netTween_set'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> newTweenSet.<span style="color: rgb(102, 0, 102);">bind</span><span style="color: rgb(0, 153, 0);">(</span>newTween<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h3>Запуск эффекта tween</h3>
<p>А теперь, когда мы полностью настроили наш объект, наша функция находится вне события <em>domready</em> и мы помним, как с помощью функции <strong>.set();</strong> назначить параметр стиля, потому, давайте пройдем к, собственно, спец.эффектам. Запустить эффект – очень просто! Аналогично <strong>.fade();</strong> использовать <strong>.start();</strong> можно двумя методами.</p>
<ol>
<li>Провести преобразование от одного значения свойства стиля до другого</li>
<li>Назначить значение свойства стиля, потом перейти у другому</li>
</ol>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//эта строчка изменит текущее значение свойства width на 300px</span>
newTween.<span style="color: rgb(102, 0, 102);">start</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'300px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//эта строчка установит свойство width на 100px, потом сделает плавный переход на 300px</span>
newTween.<span style="color: rgb(102, 0, 102);">start</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'100px'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'300px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Теперь можно начать (с помощью функции <strong>.start();</strong>) выполнение эффекта из функции и спользовать «this», если была использована функция <strong>.bind();</strong> для связи с «newTween».</p>
<h3>По эффектам tween пока все&#8230;</h3>
<p>Несмотря на то что о эффектах tween еще можно долго говорить. Например, если нужно наложить спец. эффекты на несколько свойств стилей одновременно, можно использовать функцию <strong>.morph();</strong>. Можно использовать библиотеку эффектов и переходов для изменения тех самых переводов. Но этот урок и так получается довольно длинным, потому оставим это все на другие уроки.</p>
<p style="text-align: right;"><strong>Всем удачи и успехов!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootorials-special-effects-day10.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>«Фильтруй базар» или учимся фильтровать текст – Уроки Mootools – Урок 9</title>
		<link>http://php.infoniac.ru/text-filtering-mootorial9.html</link>
		<comments>http://php.infoniac.ru/text-filtering-mootorial9.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 13:07:15 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[обработка текста]]></category>
		<category><![CDATA[строка]]></category>
		<category><![CDATA[текст]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=562</guid>
		<description><![CDATA[В продолжении урока №9 о фильтрации чисел, продолжим в том же духе: расмотрим уструменты, посволяющие фильтровать текст. Как говорилось и в 9-м уроке, инструментами Mootools можно осуществлять превентивные действия по обороне сайта от атак и ошибок при вводе данных, однако, ключевое слово тут "превентивные" - ВСЕ Javascript инструменты можно использовать как оружие первой линии обороны, но полноценно оборняться и огрождаться от ошибок ввода нужно сервеными инструментами! А пока, нырнем в фильтрацию с помощью Mootools.]]></description>
			<content:encoded><![CDATA[<div class="entry">
<div class="postbody entry clearfix">
<p>Привет, люди планеты Земля! 1) хочу перед всеми извинится, если это кому-либо важно, за много месяxный перерыв… Мне стыдно!!!! Сам не ожидал, что так получится, но свадьба – дело тонкое, трудоемкое, которое требует много времени. Да, я женился, отдохнул, и готов к новым урокам. Еще, в качестве оправдания хочу сказать, что все это время я не забывал о блоге, своем не развитом, и хотя бы записывал идеи постов, которые, как мне кажется, окажутся полезными. Некоторые темы уже даже наполовину готовы, осталось только их дописать и опубликовать – всего ничего! Ну а пока, внимание! Смотрим на доску!</p>
<p>Если кто не заметил, я перешел от вручную написанного моим знакомым программистом движка на более популярный вордпрес. Это не означает, что ЦМСка моего знакомого не хороша – наоборот, она хороша тем, что она заточена под определенные действия, а именно под продвижение. Но, так как эту систему управления написал не я, я в ней совсем не разбираюсь, а дергать человека постоянно не хочу, решил перейти на вордпрес. Благо, по этой тематике в интернете много всего понаписано, да и просто покопаться в коде вордпреса тоже полезно для развития. Итак, все старые посты перекинуты, теперь все по-прежнему. Продолжаю публиковать уроки Mootools. Вот он следующий урок, о фильтрации текста.</p>
<p><span id="more-129"></span></p>
<h2>Функции обработки строк</h2>
<p>В этом уроке поговорим о том, какие возможности нам предоставляет библиотека Mootools при работе с данными в виде строк. Сразу нужно отметить, что то, что будет показано в этом уроке – это лишь ничтожная часть того, что Mootools может предоставить для работы со строками. В качестве небольшой иллюстрации можно привести функцию <strong>сamelCase()</strong>, которая переделывает текст <em>такого-типа</em> в текст <em>ТакогоТипа</em> (или любую другую функцию обработки текста, основанную на регулярных выражениях). Итак, в этом уроке мы пробежимся по основам работы с текстовыми строками, а потом углубимся дальше.</p>
<p>Перед тем, как мы продолжим, взглянем на то, как такие функции вызываются:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> my_text_variable <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">"Сюда вставляем текстовую строку"</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//  результат переменная с исходником.наименование функции</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> result_of_function <span style="color: rgb(51, 153, 51);">=</span> my_text_variable.<span style="color: rgb(102, 0, 102);">someStringFunction</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Только ради большей эрудиции, следует отметить, что строковые функции можно вызывать и непосредственно с исходником:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> result_of_function <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">"Сюда вставляем текст"</span>.<span style="color: rgb(102, 0, 102);">someStringFunction</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Обратите внимание, что так же можно вызвать и функцию для обработки числа:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//Обратите внимание на использование скобок</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//тогда как при работе со строками используются кавычки</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> limited_number <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">256</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">1</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">100</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Также, хочет отметить вот что: Ява скрипты не должны вычищать пользовательский текст перед посылкой его на сервер для дальнейшей обработки. Все, что пишится на JavaScript может быть видно ВСЕМ посетителям страницы, эти скрипты можно включать/выключать, потому настоятельно рекоммендую не использовать JavaScript для обеспечения безопасности. Надеюсь не забуду провести небольшой дискурс по поводу безопасности с помощью PHP, когда мы дойдем до класса Mootools Request. И еще раз – <span style="color: rgb(153, 0, 0); font-weight: bold;">все скрипты обеспечивающие безопасность должны выполняться на сервере, подальше от пользователя, а не с помощью JavaScript и всего к нему относящемуся!!!</span></p>
<h3>trim()</h3>
<p>Функция <strong>trim()</strong> позволяет, как и в языке PHP, быстро и эффективно избавить строку от лишних пробелов и пустого пространсва по обеим сторонам.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//Текст, который мы "тримируем"</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> text_to_trim <span style="color: rgb(51, 153, 51);">=</span>  <span style="color: rgb(51, 102, 204);">"    <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>Строка с ненужным пустым местом     "</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//  переменная trimmed_text стала такой: "Строка с ненужным пустым местом"</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> trimmed_text <span style="color: rgb(51, 153, 51);">=</span> text_to_trim.<span style="color: rgb(102, 0, 102);">trim</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Если  вы еще не сталкивались с таким символом, как &laquo;\n&raquo;, сообщаю, что этот символ соответствует новой строке (от англ. &laquo;<em>Newline</em>&laquo;). Этот символ можно использовать в тексте, который нужно разбить на строки. Такой символ, или разрыв строк, фунцией <strong>trim()</strong> считается как пустое пространство, потому от него функция тоже избавляется. Жаль только, что <strong>trim()</strong> не избавляет от пустого пространства внутри текста:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> trimDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//дадим тексту переменную</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> text_to_trim <span style="color: rgb(51, 153, 51);">=</span>  <span style="color: rgb(51, 102, 204);">'            <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>очень       много       белого<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>              '</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//тримируем</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> trimmed_text <span style="color: rgb(51, 153, 51);">=</span> text_to_trim.<span style="color: rgb(102, 0, 102);">trim</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Смотрим результат</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'До тримирования: <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>'</span> <span style="color: rgb(51, 153, 51);">+</span>
		  <span style="color: rgb(51, 102, 204);">'|-'</span> <span style="color: rgb(51, 153, 51);">+</span> text_to_trim <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">'-|<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span><span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>'</span> <span style="color: rgb(51, 153, 51);">+</span>
		  <span style="color: rgb(51, 102, 204);">'После тримирования : <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>'</span> <span style="color: rgb(51, 153, 51);">+</span>
	      <span style="color: rgb(51, 102, 204);">'|-'</span> <span style="color: rgb(51, 153, 51);">+</span> trimmed_text <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">'-|'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</p></div>
</div>
<p>
  <button id="trim">Тримирование</button>
</p>
<h3>clean()</h3>
<p>Понятно, заваливать весь текст пробелами – нехорошо. Потому, разработчики Mootools пошли навстречу тем, кто так считает. Функция <strong>clean()</strong> очистит не только пробелы и «пробело-образные» символы до и после текста, но и внутри него:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//Текст для очистки</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> text_to_clean <span style="color: rgb(51, 153, 51);">=</span>  <span style="color: rgb(51, 102, 204);">"    <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>Текст     <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>с      большим <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span> <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>    количеством     <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>пробелов  <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>   "</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//  очищенный текст будет таким "Текст с большим количеством пробелов"</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> cleaned_text  <span style="color: rgb(51, 153, 51);">=</span> text_to_trim.<span style="color: rgb(102, 0, 102);">clean</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Как показывает пример, функция <strong>clean()</strong> – это тотже <strong>trim()</strong>, только с возможностью чистки пробелов внутри текста. Таким образом, эта функция почистит весь текст от пробелов в количестве более 2-х поряд, и от всех табов (\t) и разрывов строк (\n). Давайте сравним результаты работы этих двух функций:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> cleanDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Прикрепляем исходник к переменной</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> text_to_clean <span style="color: rgb(51, 153, 51);">=</span>  <span style="color: rgb(51, 102, 204);">'            слишком <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>       много<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>       пробелов              '</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Чистим</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> cleaned_text <span style="color: rgb(51, 153, 51);">=</span> text_to_clean.<span style="color: rgb(102, 0, 102);">clean</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Выводим результат в окно alert()</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'До чистки : <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>'</span> <span style="color: rgb(51, 153, 51);">+</span>
		  <span style="color: rgb(51, 102, 204);">'|-'</span> <span style="color: rgb(51, 153, 51);">+</span> text_to_clean <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">'-|<span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span><span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>'</span> <span style="color: rgb(51, 153, 51);">+</span>
		  <span style="color: rgb(51, 102, 204);">'После чистки : <span style="color: rgb(0, 0, 153); font-weight: bold;">\n</span>'</span> <span style="color: rgb(51, 153, 51);">+</span>
	      <span style="color: rgb(51, 102, 204);">'|-'</span> <span style="color: rgb(51, 153, 51);">+</span> cleaned_text <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">'-|'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</p></div>
</div>
<p>
  <button id="clean">Чистка</button>
</p>
<h3>contains()</h3>
<p>Как и 2 предыдущие рассмотренные функции, функция Mootools <strong>clean()</strong> делает одну очень простую вещь, без особенностей и заморочек: она проверяет, содержиться ли в исходном тексте заданная строка. В качестве результата работы возвращается <strong>True</strong> если вхождения есть и <strong>False</strong> – если нет.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//Строка с исходным текстом</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> string_to_match <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">"В этом тексте ведем поиск?"</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//Ищем слово "тексте", did_string_match возвращает true</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> did_string_match <span style="color: rgb(51, 153, 51);">=</span> string_to_match.<span style="color: rgb(102, 0, 102);">contains</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'тексте'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//Ищем слово "ужас", функция возвращает False</span>
did_string_match <span style="color: rgb(51, 153, 51);">=</span> string_to_match.<span style="color: rgb(102, 0, 102);">contains</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'ужас'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Эта функция может пригодится во многих приложениях на Вашем сайте/блоге/сайте, особенно в комплексе с другими Mootools функциями. Например, если использовать функцию <strong>clean()</strong> с функцией <strong>each()</strong> для приминения пользовательской функции к каждому элементу массива (<a href="http://php.infoniac.ru/mootorial-arrays-day3.html" title="30 дневный курс подготовки юного бойца – Mootools 1.2 – Урок 3 – Массивы  30 дневный курс подготовки юного бойца – Mootools 1.2 – Урок 3 – Массивы">см. урок 3</a>), можно сделать довольно многое, засоряя лишь несколько строк. Например, если мы создадим некий массив слов, запрещенных к использованию в комментариях, можно просмотреть весь текст на предмет использования этих слов. При этом, используется не такая уж и большая фукнция:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">	string_to_match <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">"сюда вставляем любой текст, в котором нужно проводить поиски"</span><span style="color: rgb(51, 153, 51);">;</span>
	word_array <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(51, 102, 204);">'слова'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'которые'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'нужно'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'найти'</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Передаем каждое слово в качестве переменного аргумента функции</span>
	word_array.<span style="color: rgb(102, 0, 102);">each</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>word_to_match<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">//Поиск текущего слова</span>
		<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>string_to_match.<span style="color: rgb(102, 0, 102);">contains</span><span style="color: rgb(0, 153, 0);">(</span>word_to_match<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
			<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'было найдено слово'</span> <span style="color: rgb(51, 153, 51);">+</span> word_to_match <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">'! НЕХОРОШО!'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
		<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>На базе такого примера можно сотворить много чудесных скриптиков, как например такой инструмент, вылавливающий нецензурные и бранные слова или названия конкурентных товаров или брендов <img src="9_files/icon_smile.gif" alt=":)" class="wp-smiley"/> </p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> containsDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span> <span style="color: rgb(0, 153, 0);">(</span>textAreaID<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Создаем список запрещенных слов</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> banned_words <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(51, 102, 204);">'BMW'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'Audi'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'Fererro Roche'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'хрень'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'херня'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'мудак'</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span>	
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//берем содержимое тега textarea</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> textarea_input <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span>textAreaID<span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//эта переменная будет отвечать за количество НЕ найденых совпадений</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//чтобы можно было отблагодарить пользователей</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//за чистоту речи, если вдруг такое случиться</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> i <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
   	<span style="color: rgb(0, 102, 0); font-style: italic;">//используя функцию each() пробегаем по каждому слову этого текста</span>
	banned_words.<span style="color: rgb(102, 0, 102);">each</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>banned_word<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">//ищем запрещенные слова указанные в списке</span>
		<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>textarea_input.<span style="color: rgb(102, 0, 102);">contains</span><span style="color: rgb(0, 153, 0);">(</span>banned_word<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
&nbsp;
			<span style="color: rgb(0, 102, 0); font-style: italic;">//Сообщаем пользователю, что такие плохие слова использовать очень плохо!</span>
			<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Слово '</span> <span style="color: rgb(51, 153, 51);">+</span> banned_word <span style="color: rgb(51, 153, 51);">+</span> <span style="color: rgb(51, 102, 204);">' тут использовать нельзя!'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
		<span style="color: rgb(0, 153, 0);">}</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">//Если совпадение по очередному слову не найдено</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//перемнная i увеличивается на 1</span>
		<span style="color: rgb(0, 0, 102); font-weight: bold;">else</span> <span style="color: rgb(51, 153, 51);">++</span>i<span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//Если i ровняется количеству запрещенных слов, значит пользователь их не использовал</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//Благодарим пользователя за чистоту речи</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>i<span style="color: rgb(51, 153, 51);">==</span>banned_words.<span style="color: rgb(102, 0, 102);">length</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 0, 102);">alert</span> <span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"Спасибо, что не используете ненависные нам слова! <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  "</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</p></div>
</div>
<p>
  <textarea cols="70" rows="4" id="textarea_1">Как-то раз ехал на своем BMW на фабрику Fererro Roche и тут меня подрезает какой-то мудак на своем Audi. Я ему вдогонку кричу «Ты что за хрень вытворяешь, мудак!!! Что за херня!»</textarea><br />
  <br />
  <button id="contains">Проверка на запрещенные слова</button>
</p>
<p>
  <textarea cols="70" rows="5" id="textarea_2" style="padding: 5px;">Как-то раз ехал на своем автомобиле на фабрику одной известной компании по производству всяких разных сладостей и тут меня подрезает какой-то нехороший человек на своем автомобиле. Я ему вдогонку кричу «Ты что за нехорошую вещь вытворяешь, нехороший человек!!! Ну как же так?! Что за люди то неприличные!?!»</textarea><br />
  <br />
  <button id="contains2">Проверка на запрещенные слова</button>
</p>
<h3>substitute()</h3>
<p>Функция <strong>substitute()</strong> – это очень мощный инструмент несмотря на свою кажущююся простоту. Сегодня мы затронем лишь ее основы, но отметим, что основная мощь ее исходит из возможности использовать ее с регулярными выражениями, которые мы рассмотрим в последующих уроках. Однако, только лишь основные возможности этой функции уже позволяет немного поиздеваться над исходным текстом.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//Это текст, который функция будет использовать</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//в качестве шаблона. Обращаю внимание, что слова, которые </span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//нужно заменить, помещаются в фигурные скобки</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> text_for_substitute <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">"Майонез - это {один},  Кетчуп - это {два}, Горчица - это {три}."</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//Далее содаем объекс, в котором содержаться правила замены</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//Слова справа, не помещенные в кавычки - это слова</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//которые будут заменены словами слева, помещенными</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//в кавычки</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> substitution_object <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">{</span>
	один<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'лучшая заправка для салата'</span><span style="color: rgb(51, 153, 51);">,</span>
	два<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'соус, который хорошо подходит к мясу, особенно к шашлыку'</span><span style="color: rgb(51, 153, 51);">,</span>
	три<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'такая замазка, иногда горькая, но в основном не очень. Хорошо  к мясу тоже подходит'</span>
    <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//вызываем функцию substitute() с объектом, </span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//в котором находятся шаблоны замены   </span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> new_string <span style="color: rgb(51, 153, 51);">=</span> text_for_substitute.<span style="color: rgb(102, 0, 102);">substitute</span><span style="color: rgb(0, 153, 0);">(</span>substitution_object<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> 
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//теперь наш текст выглядит вот так:</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//"Майонез - это лучшая заправка для салата,</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//Кетчуп - это соус, который хорошо подходит к мясу, особенно к шашлыку,</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//Горчица - это такая замазка, иногда горькая, но в основном не очень. Хорошо  к мясу тоже подходит."</span></pre>
</p></div>
</div>
<p>Вообще не всегда обязательно нужно создавать объект с шаблонами, т.к. можно обойтись и таким кодом:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//Создаем текст с отметками для замены</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> text_for_substitute <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">"{это_нужно_заменить} и оригинальный текст"</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//А шаблон для замены в виде объекта можно передать функции substitute()</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//в виде параметра</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> result_text <span style="color: rgb(51, 153, 51);">=</span> text_for_substitute.<span style="color: rgb(102, 0, 102);">substitute</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>это_нужно_заменить<span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'Значение замены'</span><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//результатом функции будет "Значение замены и оригинальный текст"</span></pre>
</p></div>
</div>
<p>Чем дальше, тем глубже! Вместо стандартных словоформ в кавычках (слова слева) можно использовать элементы DOMа, т.е. можно создавать более интерактивные приложения на сайте:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> substituteDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Берем оригинальный тест из соответствующего элемента DOM</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> original_text <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'substitute_span'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'html'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Определяем, чем будем заменять:</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//а заменять мы будем текстом введеным в текстовое поле</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> new_text <span style="color: rgb(51, 153, 51);">=</span> original_text.<span style="color: rgb(102, 0, 102);">substitute</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>
		первый  <span style="color: rgb(51, 153, 51);">:</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'first_value'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">,</span>
		второй <span style="color: rgb(51, 153, 51);">:</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'second_value'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">,</span>
		третий  <span style="color: rgb(51, 153, 51);">:</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'third_value'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">,</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Заменяем первоначальный текст на новый</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'substitute_span'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'html'</span><span style="color: rgb(51, 153, 51);">,</span> new_text<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Отключаем кнопку замены и включаем кнопку сброса</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'simple_substitute'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'disabled'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">true</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'simple_sub_reset'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'disabled'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">false</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> substituteReset <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Создаем переменную для первоначального текста</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> original_text <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">"|- {first} -- {second} -- {third} -|"</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Заменяем текст в соответствующем элементе на первоначальный </span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'substitute_span'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'html'</span><span style="color: rgb(51, 153, 51);">,</span> original_text<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Выключаем кнопку сброса и включаем кнопку замены</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'simple_sub_reset'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'disabled'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">true</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'simple_substitute'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'disabled'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">false</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</p></div>
</div>
<p><span id="substitute_span">|- {первый} — {второй} — {третий} -|</span></p>
<p>Первая замена:</p>
<input size="6" id="first_value" type="text"/>
Вторая замена:</p>
<input size="6" id="second_value" type="text"/>
Третья замена:</p>
<input size="6" id="third_value" type="text"/>
<button id="simple_substitute">Замена</button><br />
<button id="simple_sub_reset">Сброс</button></p>
<p>И, напоследок, еще немного теории. При приминении функции <strong>substitute()</strong> к строке, всегда нужно предоставлять функции объект со всеми парами «ключ : значение», так как иначе функция просто удалит все, что найдет между фигурными скобками (включая сами фигурные скобки). Потому, будьте осторожны, при использовании такой строки в качестве полигона действий:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"{раз} блаблабла {два} и пусть бе-бе-бе"</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">substitute</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>раз <span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'текст на замену'</span><span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>В конечном итоге получится  <button id="last_warning">вот что</button>.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/text-filtering-mootorial9.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Уроки Mootools – Урок 8 – Учимся фильтровать числа</title>
		<link>http://php.infoniac.ru/mootools-filtering-numbers.html</link>
		<comments>http://php.infoniac.ru/mootools-filtering-numbers.html#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:40:53 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[фильтрация]]></category>
		<category><![CDATA[числа]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=551</guid>
		<description><![CDATA[В этом уроке я покажу методы фильтрации чисел с помощью Mootools. Такие методы хороши в качестве превентивных мер обороны, но обороняться нужно "тяжелой артиллерией", т.е. серверными инструментами (PHP, ASP и т.д. - в зависимости от предпочтений и умений программиста и возможностей сервера). Но часто, превентивные меры уже хорошо справляются с защитой, потому их тоже надо знать!]]></description>
			<content:encoded><![CDATA[<p>Продолжаем наши уроки Mootools и сегодня рассмотрим, как можно использовать Mootools для фильтрации пользовательских данных. Начнем с простой фильтрации чисел, а потом продолжим с фильтрацией текстовых строк в следующем уроке.</p>
<p><strong>Примечание</strong>:Фильтрация входящих данных в Javascript используется для того, чтобы обеспечить нормальную работу ваших скриптов. Не нужно использовать ее для полной замены серверной фильтрации, которая используется для защиты приложений от внешних атак.</p>
<h2>Числа</h2>
<p>Помните, в <a href="http://php.infoniac.ru/mootools-tutorial-day-4-functions.html">4-м уроке</a> мы брали значения текстовых полей, отображающих RGB значения цветов, и использовали их для замены фонового цвета страницы, а сегодня мы снова возьмем за основу этот код, приделав к нему небольшие модификации.</p>
<h3>rgbToHex()</h3>
<p>С точки зрения структуры, функция rgbToHex() принадлежит коллекции функции для работы с массивами. Но, т.к. эта функция для работы с числовыми массивами, мы будем рассматривать ее именно в этом уроке. С точки зрения предназначения и использования, функция rbgtoHex() вполне проста:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span> changeColor<span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
  	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> color <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">]</span>.<span style="color: rgb(102, 0, 102);">rgbToHex</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
   	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Конвертируется в : '</span> <span style="color: rgb(51, 153, 51);">+</span> color<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
   <span style="color: rgb(0, 153, 0);">}</span>
     changeColor<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'5'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'41'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'18'</span><span style="color: rgb(0, 153, 0);">)</span></pre>
</div>
</div>
<p><button id="change_color_1_good" class="demo_button">changeColor(‘54′, ‘41′, ‘18′);</button></p>
<p>Этот код идеально работает, если передавать в качестве аргументов цифры. Посмотрите, как поведет себя браузер, когда вместо одного из аргументов мы передадим текст:</p>
<p><button id="change_color_1_bad" class="demo_button">changeColor(‘54′, ‘41′, ‘опля’);</button></p>
<p>«Nan» виднеющийся в конце сообщения имеет значение <strong>N</strong>ot <strong>a</strong> <strong>N</strong>umber (Не Число). Если именно вы вводите вручную массив цифр для значения цвета, такой ошибки может вы и не увидите. Но если используется какой-либо внешний источник, очень вероятно, что придется частенько почитывать такие ошибочки.</p>
<h3>toInt()</h3>
<p>Теперь нам нужно убедиться в том, что фукнция <strong>rgbToHex()</strong> получает в качестве аргумента, именно числа, а не данные в каком-либо другом формате. Для этого мы можем использовать функцию <strong>toInt()</strong> – это еще одна относительно простая и понятная функция. Ей можно передать любую переменную, а она позаботится о том, чтобы извлеч из данных этой переменной число.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> toIntDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>make_me_a_number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> number <span style="color: rgb(51, 153, 51);">=</span> make_me_a_number.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 0, 102);">alert</span> <span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Что получилось : '</span> <span style="color: rgb(51, 153, 51);">+</span> number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="to_int_1">toIntDemo(’613.234′)</button><br />
<button id="to_int_2">toIntDemo(’83_ура!’)</button><br />
<button id="to_int_3">toIntDemo(’а_нет_ли_тут_26?’)</button></p>
<p>Ну вот! Как видно, toInt() несправляется с каждой неоднозначной ситуацией, но, благодяра другой классной вещи в Mootools, которая называется $type(), мы можем спокойно разобраться и с этой проблемкой!</p>
<h3>$type()</h3>
<p><strong>$type()</strong> – это еще одна вкусняшка нашей любимой библиотеки. Она анализирует переданную ей перменную и возвращает текстовую строку с названием типа данных, которому придлажала переменная. Что-то я тут запутал… Лучше разюерем на примере:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> checkType <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>variable_to_check<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> variable_type <span style="color: rgb(51, 153, 51);">=</span> $type<span style="color: rgb(0, 153, 0);">(</span>variable_to_check<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"Данные являются типом : "</span> <span style="color: rgb(51, 153, 51);">+</span> variable_type<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="type_number" class="demo_button">checkType(43)</button><button id="type_string" class="demo_button">checkType(’a string’)</button><button id="type_boolean" class="demo_button">checkType(false)</button></p>
<p></p>
<p>На самом деле, <strong>функция $type()</strong> не ограничивается определением этих трех типов данных. <strong>$type()</strong> возвращает следующие значения в текстовой форме:</p>
<ul>
<li>&#8216;element&#8217; – Если переданный объект является элементом DOMa</li>
<li>&#8216;textnode&#8217; – текстовый элемент DOMa.</li>
<li>&#8216;whitespace&#8217; – пустое пространство DOMa.</li>
<li>&#8216;arguments&#8217; – аргумент.</li>
<li>&#8216;array&#8217; – массив.</li>
<li>&#8216;object&#8217; – объект.</li>
<li>&#8216;string&#8217; – текстовая строка.</li>
<li>&#8216;number&#8217; – число.</li>
<li>&#8216;date&#8217; – дата.</li>
<li>&#8216;boolean&#8217; – булев тип.</li>
<li>&#8216;function&#8217; – функция.</li>
<li>&#8216;regexp&#8217; – регулярной выражение.</li>
<li>&#8216;class&#8217; – класс (созданный с помощью new Class или является расширением другого класса).</li>
<li>‘collection’ – когда переданный объект – это набор из html-элементов, как при вызове <strong>childNodes</strong>, <strong>getElementsByTagName</strong>, и т.д.</li>
<li>‘window’ – окно.</li>
<li>‘document’ – документ.</li>
<li>false – (<em>булев тип</em> – единственный в своем роде при использовании <strong>$type()</strong>) Возвращается тогда, когда объект имеет тип undefined, null, NaN или ни один ииз вышеперечисленных.</li>
</ul>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> toIntDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>make_me_a_number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//попробуем сделать число из введенного текста</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> number <span style="color: rgb(51, 153, 51);">=</span> make_me_a_number.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Если это не срабатывает, устанавливаем число ноль (0)</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>number<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>number <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Что получилось : '</span> <span style="color: rgb(51, 153, 51);">+</span> number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p>  <button id="to_int_4">toIntDemo_2(’613.234?)</button></p>
<p>  <button id="to_int_5">toIntDemo_2(’83_Ё_моЁ!’)</button><br />
  <button id="to_int_6">toIntDemo_2(’а_что_если_83?)</button></p>
<p>Если соединить все это воедино, получиться <strong>почти</strong> идеальная версия нашего скрипта по конвертированию цветов из формата RGB в шестнадцатиричный код – changeColor():</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> changeColor_2 <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Убедимся в том, что у нас все данные - числа</span>
&nbsp;
    red_value <span style="color: rgb(51, 153, 51);">=</span> red_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    green_value <span style="color: rgb(51, 153, 51);">=</span> green_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    blue_value <span style="color: rgb(51, 153, 51);">=</span> blue_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//Устанавливаем значения по умолчанию на всё, что не является числом</span>
&nbsp;
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(0, 153, 0);">)</span>   <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>red_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>green_value<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>green_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>blue_value<span style="color: rgb(0, 153, 0);">)</span>  <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>blue_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//Вычисляем шестнадцатиричное значение</span>
&nbsp;
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> color <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">]</span>.<span style="color: rgb(102, 0, 102);">rgbToHex</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Конвертируется в : '</span> <span style="color: rgb(51, 153, 51);">+</span> color<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="change_color_2_clean">changeColor(‘208′, ‘127′, ‘74′);</button><br />
<button id="change_color_2_default">changeColor(‘82′, ‘7′, ‘скунс’);</button></p>
<p><button id="change_color_2_breaks">changeColor(‘522′, ‘847′, »);</button></p>
<p>Обратите внимание, что последняя кнопка передает числа куда более высокие, чем могут приминать цвета в формате RGB (0-255), а это, нужно сказать, делает шестнадцатиричное число не особо пригодным для обозначения цветов. К сожалению, это означает, что если мы получим число большее или меньшее диапазона 0-255, мы не получим шестнадцатиричного значения цвета. К счастью, Mootools поможет нам забыть и об этой проблеме.</p>
<h3>limit()</h3>
<p>Функция <strong>limit()</strong> не выдиляется сложностью, т.к. этим словом ее охарактеризовать нельзя. Она помогает удержать числа в заданном диапазоне:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//вызываем функцию</span>
limit<span style="color: rgb(0, 153, 0);">(</span>n1<span style="color: rgb(51, 153, 51);">,</span> n2<span style="color: rgb(0, 153, 0);">)</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//где n1 наименьшее число требуемого диапазона</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">// а n2 - наивысшее</span></pre>
</div>
</div>
<p>Ничего сложного! Елинственное «но», это то, что нужно иметь ввиду, что функция предполагает, что <em>n1</em> и <em>n2</em> – это числа. Поэтому крайне рекомендуется применять <strong>toInt()</strong> к данным, которые предположительно являются числами и которые предствоит передавать в функцию <strong>limit()</strong> (или любую другую функцию для работы с числами).</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> limitDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>number_to_limit<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Получаем число</span>
&nbsp;
	number_to_limit <span style="color: rgb(51, 153, 51);">=</span> number_to_limit.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//получаем число из требуемого диапазона</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> limited_number <span style="color: rgb(51, 153, 51);">=</span> number_to_limit.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"Ограничиваем до : "</span> <span style="color: rgb(51, 153, 51);">+</span> limited_number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p>  <button id="limit_demo">limitDemo(6535634);</button></p>
<h3>А вот и полный рецепт</h3>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> changeColor <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Убеждаемся, что все данные у нас - это числа</span>
&nbsp;
	red_value   <span style="color: rgb(51, 153, 51);">=</span> red_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	green_value <span style="color: rgb(51, 153, 51);">=</span> green_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	blue_value  <span style="color: rgb(51, 153, 51);">=</span> blue_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Устанавливаем значения по умолчанию на все, что не является числом</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(0, 153, 0);">)</span>   <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>red_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>green_value<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>green_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>blue_value<span style="color: rgb(0, 153, 0);">)</span>  <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>blue_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Ограничиваем все до диапазона значений RGB (0 - 255)</span>
&nbsp;
	red_value   <span style="color: rgb(51, 153, 51);">=</span> red_value.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	green_value <span style="color: rgb(51, 153, 51);">=</span> green_value.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	blue_value  <span style="color: rgb(51, 153, 51);">=</span> blue_value.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Конвертируем в шестнадцатиричную систему</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> color <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">]</span>.<span style="color: rgb(102, 0, 102);">rgbToHex</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Converts to : '</span> <span style="color: rgb(51, 153, 51);">+</span> color<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> 
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="change_color_3_clean" class="demo_button">changeColor(’28′, ‘17′, ‘47′);</button><button id="change_color_3_default" class="demo_button">changeColor(‘28′, ‘17′, ‘oops’);</button><button id="change_color_3_limit" class="demo_button">changeColor(’428′, ‘317′,<br />
‘265000′);</button></p>
<p>Обратите внимание, что функция <strong>.rgbToHex()</strong> нигде не принимает никаких атрибутов. Это все потому, что эта функция может принять 2 атрибута булев типа: <em>true</em>, <em>false</em>. По умолчанию установлен <em>false</em>, что и возвращает нам строку в таком виде, в котором она нам нужна для вставки в атрибут цвета, т.е. &laquo;#000000&#8243;. Если же передать атрибут <em>true</em>, функция вернет данные в виде массива.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> rgb2HexTrue <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>r<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> b<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> rgbArray <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>r<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> b<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">rgbToHex</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #003366; font-weight: bold;">var</span> rgbHex <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>r<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> b<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">rgbToHex</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'rgbToHex с параметром TRUE: '</span> <span style="color: #339933;">+</span> rgbArray <span style="color: #339933;">+</span> <span style="color: #3366CC;">'и с параметром FALSE: '</span> <span style="color: #339933;">+</span> rgbHex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><button id="rgb2hexTrue">rgb2Hex(&#8217;34&#8242;, &#8217;117&#8242;, &#8217;247&#8242;)</button></p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-filtering-numbers.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Уроки Mootools – Урок 7 – Игра со стилями</title>
		<link>http://php.infoniac.ru/mootools-day7-styles.html</link>
		<comments>http://php.infoniac.ru/mootools-day7-styles.html#comments</comments>
		<pubDate>Sat, 11 Jul 2009 07:06:11 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[манипуляции css]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[стили]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=545</guid>
		<description><![CDATA[На мой взгляд – очень интересный урок, где рассмотрим мы методы работы со стилями. Согласитесь, работать со стилями в современном Web 2.0, очень важно уметь! Вот и будем рассматривать методы и функции получения и изменения свойств стилей «на лету», т.е. пользователь нажал на кнопку, а и не заметил, как свойство стиля и изменилось.
<!--3E4F7FCD31DE5B0811E917A03F5DC187-->]]></description>
			<content:encoded><![CDATA[<h2>Основы</h2>
<h3>Функция .setStyle();</h3>
<p>Эта функция позволяет установить свойства стиля элемента. Все что нужно сделать, это добавить <strong>.setStyle()</strong> через сивмол точки («.») в конец строки с селектором (или к соответствующей переменной), и она  изменит свойства стилей одного элемента или целого массива элементов.</p>
<p><span id="more-122"></span></p>
<style>
#playstyles {
	width: 200px;
	height: 200px;
	background-color: #eeeeee;
	border: 3px solid #dd97a1;
}
</style>
</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//определяем селектор</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//добавляем функцию .setStyle</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//задаем необходимое свойство стиля и его значение</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'body_wrap'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">setStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'#eeeeee'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
$$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'.class_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">setStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'#eeeeee'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"class_name"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"class_name"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"class_name"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"class_name"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</p></div>
</div>
<h3>.getStyle();</h3>
<p>Если понимаешь хоть как-то по английски, тут все понятно: функция получает значение свойства стиля элемента (как-то много родительного падежа <img src="7_files/icon_smile.gif" alt=":)" class="wp-smiley"/> ). </p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//вначале объявляем переменную, в которой будет содержаться значение параметра стиля</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> styleValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(51, 102, 204);">'body_wrap'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">getStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>Если бы мы прогнали этот код по предыдушим HTML строкам, переменная <strong>styleValue</strong> получила бы значение <em>‘#eeeeee’</em>.</p>
<h2>Получение и установка нескольких значений стиля</h2>
<h3>setStyles();</h3>
<p><strong>.setStyles();</strong>, как скорее всего уже понял народ, хоть немного понимающий английский, позволяет применить несколько значений стиля одновременно к одному элементу или к целому массиву элементов. Синтаксис функции <strong>.setStyles();</strong> немного отличается от синтаксиса остальных схожих функций и это сделано лишь для того, чтобы она позволяла работать с несколькими значениями стилей одновременно.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//начинаем мы с того, что создаем селектор, к которому добавляем, как всегда через точку, функцию</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//в данном случае .setStyles();</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'body_wrap'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">setStyles</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//шаблон, которого нужно придерживаться: 'свойство': 'значение',</span>
    <span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'1000px'</span><span style="color: rgb(51, 153, 51);">,</span>
    <span style="color: rgb(51, 102, 204);">'height'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'1000px'</span><span style="color: rgb(51, 153, 51);">,</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//ВАЖНО: после последнего значения запятую ставить НЕ НУЖНО!</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//это важно для кроссбраузерности приложения</span>
    <span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'#eeeeee'</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p><strong>Примечание</strong>:  Вообще не обязательно всегда заключать название свойства стиля в единичные кавычки. Они нужны только тогда, когда в названии свойства есть дефис (-), как, например, в свойстве <em>font-size</em>. Но для того, чтобы исключить возникновение проблем по причине не поставленной кавычки, лучше приучить себя к кавычкам. Потом искать долго, если что <img src="7_files/icon_wink.gif" alt=";)" class="wp-smiley"/>.</p>
<p><strong>Еще одно примечание</strong>: эта функция предоставляет большую гибкость при определении значений свойств (таких как ‘200px’ или ‘#ffffff’). Помимо возможности передачи обычных текстовых строк, можно также передавать числа без кавычек (которые будут интепретированы как пиксели – px – в большинстве случаев) и переменные:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//эта строчка передает переменной firstBackgroundColor значение в формате ТЕКСТ '#eeeeee'</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> firstBackgroundColor <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(51, 102, 204);">'#eeeeee'</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//можно задавать в качестве значения переменной другую переменную</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//в данном случае переменная backgroundColor получает значение друго переменной - '#eeeeee'</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> backgroundColor <span style="color: rgb(51, 153, 51);">=</span> firstBackgroundColor<span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//эта строчка передает переменной divWidth значение в формате ЧИСЛО 500</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> divWidth <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">500</span><span style="color: rgb(51, 153, 51);">;</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'body_wrap'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">setStyles</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//в данном случае, переменные - это слова без кавычек</span>
    <span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">:</span> divWidth<span style="color: rgb(51, 153, 51);">,</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//числа - это.... это числа без кавычек</span>
    <span style="color: rgb(51, 102, 204);">'height'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(204, 0, 0);">1000</span><span style="color: rgb(51, 153, 51);">,</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//другая перменная</span>
    <span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">:</span> backgroundColor<span style="color: rgb(51, 153, 51);">,</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//строки - это ряд символов, заключенных в 'единичные кавычки'</span>
    <span style="color: rgb(51, 102, 204);">'color'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'black'</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h3>.getStyles;</h3>
<p>Эта функция позволяет получать несколько значений свойств стилей за один раз. Она работает немного иначе, чем мы виделли немного выше, а отличается этот метод тем, что он работает с несколькими наборами данных в формате ключа (свойство стиля) и его значения (значение свойства). Такой набор данных называется ОБЪЕКТОМ, а метод <strong>.getStyles();</strong> позволяет легко формировать такие объекты, чтобы потом их также легко использовать.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//вначале нужно объявить переменную для нашего объекта</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//потом создать селектор</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//добавляем метод .getStykes к селектору</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//после чего создаем список названий свойств стиля, разделенных через запятую</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//все названия нужно заключать в 'единичные кавычки'</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bodyStyles <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'body_wrap'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">getStyles</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'height'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> 
<span style="color: rgb(0, 102, 0); font-style: italic;">//вначале создаем новую переменную, которая будет содержать значение свойства</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//передаем в переменную определенное свойство; </span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//ключ объекта/массива и будет названием свойства</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//название свойства заключаем в [квадратные скобки]</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//не забываем про 'единичные кавычки' для ключа объекта/массива</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bgStyle <span style="color: rgb(51, 153, 51);">=</span> bodyStyles<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<h2>Пример</h2>
<p>В этом примере мы потренируемся использовать некоторые методы, рассмотренные в этом уроке, чтобы получать информацию о стилях (<strong>.getStyles();</strong>) и устанавливать свои стили (<strong>.setStyles();</strong>). Обращайте больше внимания не на манипуляции со свойствами стилей, а на структуру кода. Для того, чтобы отделить наши функции от события domready, мы передаем им несколько переменных, которые установленны в самом событии domready. А делается это примерно так: как видно вначале идет объявление переменных с функциями, но при этом видно, что функциям передаются переменные, которые объявляются позже, уже в событии domready, где функции, собственно и вызываются, но уже после объявленных переменных. Что-то вроде того…</p>
<p>Обратите внимания, что собятия click используют анонимные функции. Это дает нам возможность передавать переменные изнутри domready функциям за его пределами. Это может показаться полным бредом на первый взгляд, но пробежав глазами по коду немного ниже, думаю, должно все проясниться.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//обратите внимание, что эта функция имеет параметр "bgColor"</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//эта функция будет использоваться уже внутри собятия domready</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> seeBgColor <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>bgColor<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>bgColor<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> seeBorderColor <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>borderColor<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>borderColor<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//тут мы используем еще не объявленную переменную playDiv</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//но, так как мы объявим переменную уже в событии domready и</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//и это произойдет до того, как мы вызовим эту функцию, ошибки не будет</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//плюс ко всему, теперь не нужно использовать селектор несколько раз</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//очень полезно когда имеешь дело со сложными селекторами</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> seeDivWidth <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//снова получаем стиль</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//но в отличии от метода .getStyles();, который используем позже в domready,</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут мы получаем текущее значение параметра стиля</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//это обеспечивает точные значение ширины элемента, передаваемые в оповещение alert </span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//даже когда значения изменяются по ходу работы</span>
		<span style="color: rgb(0, 102, 0); font-style: italic;">//или после того, как событие domready уже имело место</span>
&nbsp;
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> currentDivWidth <span style="color: rgb(51, 153, 51);">=</span> playDiv.<span style="color: rgb(102, 0, 102);">getStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>currentDivWidth<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> seeDivHeight <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> currentDivHeight <span style="color: rgb(51, 153, 51);">=</span> playDiv.<span style="color: rgb(102, 0, 102);">getStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'height'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span>currentDivHeight<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> setDivWidth <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	playDiv.<span style="color: rgb(102, 0, 102);">setStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'50px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> setBgColor <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	playDiv.<span style="color: rgb(102, 0, 102);">setStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'#fdd1aa'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> setDivHeight <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	playDiv.<span style="color: rgb(102, 0, 102);">setStyle</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'height'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'50px'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 102, 0); font-style: italic;">//обратите внимание, что этот параметр на этом этапе может называться как угодно</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//он примет любое значение (буть то элемент или еще что-либо) </span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//при ее запуске из события domready</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> resetSIZE <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span> <span style="color: rgb(0, 153, 0);">(</span>foo<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	foo.<span style="color: rgb(102, 0, 102);">setStyles</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">{</span>
		<span style="color: rgb(51, 102, 204);">'height'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(204, 0, 0);">200</span><span style="color: rgb(51, 153, 51);">,</span>
		<span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(204, 0, 0);">200</span><span style="color: rgb(51, 153, 51);">,</span>
        <span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'#fdd1aa'</span>
&nbsp;
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//в этом примере мы часто используем этот селектор, поэтому проще и экономнее сразу</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//присвоить его переменной</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> playDiv <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'playstyles'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут мы создаем объект с несколькими свойствами стиля</span>
&nbsp;
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bodyStyles <span style="color: rgb(51, 153, 51);">=</span> playDiv.<span style="color: rgb(102, 0, 102);">getStyles</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'border-bottom-color'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> 
&nbsp;
        <span style="color: rgb(0, 102, 0); font-style: italic;">//еще значение стиля можно получить обратившись в объекту со свойствами</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//с соответствующим ключем и назначив результат переменной</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bgColor <span style="color: rgb(51, 153, 51);">=</span> bodyStyles<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(51, 153, 51);">;</span> 
&nbsp;
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут используется анонимная функция чтобы иметь возможность передать параметр вне события domready</span>
&nbsp;
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'bgcolor'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		seeBgColor<span style="color: rgb(0, 153, 0);">(</span>bgColor<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'border_color'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
                <span style="color: rgb(0, 102, 0); font-style: italic;">//вместо того, чтобы передавать параметр в доступную переменную,</span>
                <span style="color: rgb(0, 102, 0); font-style: italic;">//его можно вызвать прямо сюда в алерт</span>
		seeBorderColor<span style="color: rgb(0, 153, 0);">(</span>bodyStyles<span style="color: rgb(0, 153, 0);">[</span><span style="color: rgb(51, 102, 204);">'border-bottom-color'</span><span style="color: rgb(0, 153, 0);">]</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'div_width'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		seeDivWidth<span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'div_height'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		seeDivHeight<span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'set_width'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		setDivWidth<span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'set_height'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		setDivHeight<span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
   	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'set_BgColor'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		setBgColor<span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'reset'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
		resetSIZE<span style="color: rgb(0, 153, 0);">(</span>playDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</p></div>
</div>
<p>А теперь HTML код:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"playstyles"</span>&gt;</span> <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"bgcolor"</span>&gt;</span>Получить background-color<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"border_color"</span>&gt;</span>Получить border-bottom-color<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"div_width"</span>&gt;</span>Получить width<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"div_height"</span>&gt;</span>Получить height<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"set_width"</span>&gt;</span>Установить width на 50px<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"set_height"</span>&gt;</span>Установить height на 50px<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"set_BgColor"</span>&gt;</span>Поменять background-color<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"reset"</span>&gt;</span>Сбросить<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;</span></pre>
</p></div>
</div>
<p>И небольшой отрезок нужного нам CSS-кода:</p>
<div class="wp_syntax">
<div class="code">
<pre class="css" style="font-family: monospace;"><span style="color: rgb(204, 0, 204);">#playstyles</span> <span style="color: rgb(0, 170, 0);">{</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">width</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">200px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">height</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">200px</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">background-color</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(204, 0, 204);">#eeeeee</span><span style="color: rgb(0, 170, 0);">;</span>
	<span style="color: rgb(0, 0, 0); font-weight: bold;">border</span><span style="color: rgb(0, 170, 0);">:</span> <span style="color: rgb(153, 51, 51);">3px</span> <span style="color: rgb(153, 51, 51);">solid</span> <span style="color: rgb(204, 0, 204);">#dd97a1</span>
<span style="color: rgb(0, 170, 0);">}</span></pre>
</p></div>
</div>
<div id="playstyles"> </div>
<p>
  <button id="bgcolor">Получить background-color</button> – смотрим цвет фона<br />
  <button id="border_color">Получить border-bottom-color</button> – смотрим цвет границы нижней</p>
<p>
  <button id="div_width">Получить width</button> – смотрим ширину<br />
  <button id="div_height">Получить height</button> – смотрим высоту<br />
  <button id="set_width">Установить width на 50px</button> – устанавливаем ширину на 50 пикселей<br />
  <button id="set_height">Установить height на 50px</button> – устанавливаем высоту на 50 пикселей</p>
<p>
  <button id="set_BgColor">Поменять цвет фона</button> – меняем цвет фона на ‘#fdd1aa’<br />
* Замечу, что несмотря на то, что после смены габаритов нашего объекта, кнопки, полчающие эти габариты, получают правильные значения (ширина = длина = 50px), кнопка получения цвета фона не прокатывает. По каким-то причинам (по каким, я не разобрался), код возвращает изначально установленный цвет фона объекта. Потому, будьте осторожны, если придется что-то подбное использоваться в ваших проектах!<br />
  <button id="reset">Сбросить</button>
</p>
<h2>А что же дальше?…</h2>
<p>В 8-м уроке я планирую рассказать о том, как работать с числами, а именно о большинстве методов и функций в Mootools 1.2, предназначенных для работы с числами. Не забудьте <a href="http://feeds.feedburner.com/Beginners-Programming-Training">подписаться на RSS</a>, чтобы первыми прочитать следующий урок!</p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-day7-styles.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Уроки Mootools – Урок 6 – Манипуляции с HTML</title>
		<link>http://php.infoniac.ru/mootool-day-6-html-manipulation.html</link>
		<comments>http://php.infoniac.ru/mootool-day-6-html-manipulation.html#comments</comments>
		<pubDate>Sun, 21 Jun 2009 18:09:56 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[манипуляции html]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=537</guid>
		<description><![CDATA[этом уроке мы заглянем еще глубже в то, какие возможности манипулирования элементами HTML скрывает в себе Mootools библиотека 1.2. Я уже, наверное, не раз говорил, насколько мощные возможности скрывает в себе легкая библиотека Mootools 1.2, но хочу еще раз напомнить о том, что с ее помощью можно добавлять новые элементы в вашу страницу, удалять ненужные и изменять их стиль или параметры, и все это «налету».]]></description>
			<content:encoded><![CDATA[<h2>Управление HTML элементами DOMа с помощью Mootools 1.2</h2>
<p>В предыдущих уроках мы рассмотрели возможности выбора элементов DOMа страницы, как создавать массивы, функции, как создавать прослушку событий для определенных элементов DOMа, ну а в этом уроке мы заглянем еще глубже в то, какие возмоности манипулирования элементами HTML скрывает в себе Mootools библиотека 1.2. Я уже, наверное, не раз говорил, насколько мощные возможности скрывает в себе легкая библиотека Mootools 1.2, но хочу еще раз напомнить о том, что с ее помощью можно добавлять новые элементы в вашу страницу, удалять ненужные и изменять их  стиль или параметры, и все это «налету».</p>
<h2>Основы</h2>
<h3>.get()</h3>
<p>Этот метод позволяет получать доступ к атрибутам элементов. Ипользование метода довольно просто:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//этот код вернет название тега элемента с id "id_name"</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'tag'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span>Element<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">span</span>&gt;</span><span style="color: rgb(128, 128, 128); font-style: italic;">&lt;!-- код, указанный выше, вернул бы "span" --&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>С помощью <strong>.get()</strong> можно получить не только название HTML тегов, но и такие аттрибуты, как <em>id, name, value, href, src, class</em> (вернет все классы, если элементу присвоенны несколько), с помощью ключевого слова <em>text</em> можно получить текстовое<br />
содержимое элемента, а также многое другое.</p>
<h3>.set()</h3>
<p><strong>.set()</strong> работает также, как и <strong>.get()</strong>, тоько этот метод устанавливает различные значения, а не получает их, а это очень пригодится при комбинировании с событиями, что позволяет изменять всякие значение уже после того, как загрузится страница.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//этот код установит атрибут href элемента с id #id_name на "http://www.google.com"</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">set</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'href'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'http://www.google.com'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(128, 128, 128); font-style: italic;">&lt;!-- код, указанный выше изменить атрибут href на "http://www.google.com  --&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">a</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"id_name"</span> <span style="color: rgb(0, 0, 102);">href</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"http://www.yahoo.com"</span>&gt;</span>Search Engine<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">a</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<h3>.erase()</h3>
<p>Метод <strong>.erase()</strong> позволяет удалить значение атрибута. Он работает также, как и предыдущие два: выбираете элемент, потом выбираете какой атрибут нужно удалить.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//этот код удалит значение атрибута href элемента с ID #id_name</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">erase</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'href'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(128, 128, 128); font-style: italic;">&lt;!-- код, указанный выше удалит значение атрибута href --&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">a</span> <span style="color: rgb(0, 0, 102);">href</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"http://www.yahoo.com"</span>&gt;</span>Search Engine<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">a</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<h2>Передвижение</h2>
<h3>.inject();</h3>
<p>Чтобы передвигать элемент по стрнице, можно использовать метод <strong>.inject();</strong>. Как и все остальные методы, которые мы уже рассмотрели, этот метод очень прост в использовании и предоставляет большие воможности управления пользовательским интерфейсом. Для того, чтоб ыиспользовать <strong>.inject();</strong>, давайте вначале создадим несколько элементов в переменной:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> elementA <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'elemA'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> elementB <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'elemB'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> elementC <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'elemC'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Этот код вставляет html код в переменные, что делает более легким их использование в Mootools.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"elemA"</span>&gt;</span>A<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"elemB"</span>&gt;</span>B<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"elemC"</span>&gt;</span>C<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>А теперь, чтобы изменить порядок сортировки элементов, можно использовать метод <strong>.inject()</strong> одним из четырех способов. Можно вставить элемент в:</p>
<ul>
<li>в конец (bottom) (по умолчанию)</li>
<li>в начало (top)</li>
<li>до элемента (before)</li>
<li>после элемента (after)</li>
</ul>
<p>Атрибуты <em>bottom</em> и <em>top</em> установят элемент в верхнюю или нижнюю часть выбранного элемента-контейнера. Атрибуты <em>before</em> и <em>after</em>, с другой стороны, установят необходимый элемент до или после другого элемента.</p>
<p>Итак, давайте изменим порядок элементов на A-C-B. Так как нам не нужно вставлять один элемент во внутрь другого, мы будем использовать атрибуты <em>before</em> и <em>after</em>.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//на человеческом языке звучит так:  вставить элемент C перед элементом B</span>
elementC.<span style="color: rgb(102, 0, 102);">inject</span><span style="color: rgb(0, 153, 0);">(</span>elementB<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'before'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//На русском:  вставить элемент B после элемента C</span>
elementB.<span style="color: rgb(102, 0, 102);">inject</span><span style="color: rgb(0, 153, 0);">(</span>elementC<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'after'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<h2>Создание новых элементов</h2>
<h3>new Element</h3>
<p>Конструктор «<strong>new Element</strong>» можно использовать для того, чтобы создать новый элемент на вашей HTML странице. Процесс очень напоминает написание обычного HTML кода, с тем отличием, что мы исправим синтаксис, чтобы он был совместим с Mootools:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//вначале, вы присваиваете новой переменной значение "new Element"</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//в которой и будет содержаться информация о новом элементе (div, a, span и т.д.)</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newElementVar <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Element<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'div'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//тут обозначаются все атрибуты элемента</span>
    <span style="color: rgb(51, 102, 204);">'id'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(51, 153, 51);">,</span>
    <span style="color: rgb(51, 102, 204);">'text'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'Я новый блок div'</span><span style="color: rgb(51, 153, 51);">,</span>
    <span style="color: rgb(51, 102, 204);">'styles'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//тут можно указать все параметры стиля элемента</span>
        <span style="color: rgb(51, 102, 204);">'width'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'200px'</span><span style="color: rgb(51, 153, 51);">,</span>
        <span style="color: rgb(51, 102, 204);">'height'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'200px'</span><span style="color: rgb(51, 153, 51);">,</span>
        <span style="color: rgb(51, 102, 204);">'background-color'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'#eee'</span><span style="color: rgb(51, 153, 51);">,</span>
        <span style="color: rgb(51, 102, 204);">'float'</span><span style="color: rgb(51, 153, 51);">:</span> <span style="color: rgb(51, 102, 204);">'left'</span>
    <span style="color: rgb(0, 153, 0);">}</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Смотрите, у нас получился элемент, который можно вставить в какое-либо место, с помощью методов, которые мы рассмотрели чуть чуть ранее. Давайте начнем с такого простого примера HTML:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"content_id"</span>&gt;</span>Тут у нас какое-нибудь содержимое<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>Теперь конвертируем элемент #content_id в переменную:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bodyWrapVar <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'body_wrap'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Аналогично тому, что мы рассмотрели немного ранее, мы можем вставлять созданные элементы в код страницы:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//на человеческом языке, звучит так: "вставить сверху bodyWrapVar элемент newElementVar"</span>
newElementVar.<span style="color: rgb(102, 0, 102);">inject</span><span style="color: rgb(0, 153, 0);">(</span>bodyWrapVar<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'top'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Таким образом, конечный результат выглядел бы так:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(128, 128, 128); font-style: italic;">&lt;!-- этот элемент был добавлен в верхнюю внутреннюю часть элемента-контейнера --&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"id_name"</span>&gt;</span>Новый блок<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"content_id"</span>&gt;</span>Какая-то муть<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<h2>Пример</h2>
<p>Например, давайте создадим форму, которая бы позволяла добавлять новый элемент на страницу. Для начала, сделаем несколько полей <code>input</code> и кнопку <code>button</code>.</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
        ID:  <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">input</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"id_input"</span> <span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"id"</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
        text:  <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">input</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"text_input"</span> <span style="color: rgb(0, 0, 102);">name</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"text"</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
        <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">button</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"new_div"</span>&gt;</span>create a new div<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">button</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<p>А теперь напишем и код JavaScript Mootools, который позволит нам вставлять новые элементы в нашу страницу. Для начала добавим прослушку кнопки на предмет клика и создадим функцию с этим кодом: </p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newDiv <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//в этой функции мы разместим код вставки нового элемента</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'new_div'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> newDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Затем нужно определиться с тем, какими переменными мы будем оперировать. Для того, чтобы использовать данные из форм <code>input</code>, нам нужно получить к ним доступ, а этим займется метод <strong>.get();</strong> и его параметр <em>value</em>, который отвечает за значение того или иного элемента:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> idValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> textValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Теперь эти переменные, idValue и textValue, содержат значения соответствующих полей <code>input</code>. Так как нам нужно взять значение полей <code>input</code> тогда, когда пользователь кликает по кнопке «Создать новый div», нам нужно вставить этот код в функцию <strong>newDiv();</strong>, определенную немного ранее. Если бы мы брали значения вне функции,<br />
действие бы происходило при загрузке страницы, а не при клике.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newDiv <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> idValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> textValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'new_div'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> newDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Ну а дальше нам нужно будет схватить элемент, в который мы хотим вставить новый блок <code>div</code>:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newDiv <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> idValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> textValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bodyWrapVar <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'newElementContainer'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'new_div'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> newDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Итак, у нас теперь есть значения полей <code>input</code>, тогда можно создавать новый элемент:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newDiv <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> idValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> textValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bodyWrapVar <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'newElementContainer'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
&nbsp;
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newElementVar <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Element<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'div'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//эта строка устанавливает id элемента на значение поля &lt;code&gt;input&lt;/code&gt;</span>
    	<span style="color: rgb(51, 102, 204);">'id'</span><span style="color: rgb(51, 153, 51);">:</span>	 idValue<span style="color: rgb(51, 153, 51);">,</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//эта строка передает значение поля &lt;code&gt;input&lt;/code&gt;</span>
        <span style="color: rgb(0, 102, 0); font-style: italic;">//для создания внутреннего текста блока</span>
    	<span style="color: rgb(51, 102, 204);">'html'</span><span style="color: rgb(51, 153, 51);">:</span> textValue
    <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'new_div'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> newDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Ну, а теперь нам остается только вставить новый элемент в нашу страницу:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newDiv <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//обратите внимание, что идет запрос на элемент с id="newElementContainer",</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//что означает, что такое элемент (в нашем случае, блок DIV),</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//должен быть заблаговременно создан</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> bodyWrapVar <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'newElementContainer'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> idValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> textValue <span style="color: rgb(51, 153, 51);">=</span> $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'text_input'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">get</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'value'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
 	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> newElementVar <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">new</span> Element<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'div'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 153, 0);">{</span>
    	        <span style="color: rgb(51, 102, 204);">'id'</span><span style="color: rgb(51, 153, 51);">:</span> idValue<span style="color: rgb(51, 153, 51);">,</span>
    	        <span style="color: rgb(51, 102, 204);">'text'</span><span style="color: rgb(51, 153, 51);">:</span> textValue
	<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//на русском это звучит так: вставить переменную newElementVar</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//в верхнюю часть внутри элемента bodyWrapVar</span>
&nbsp;
	newElementVar.<span style="color: rgb(102, 0, 102);">inject</span><span style="color: rgb(0, 153, 0);">(</span>bodyWrapVar<span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'top'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> removeDiv <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//эта строка удаляет внутренний html код</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//(все, что находится внутри тега div)</span>
	$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'newElementContainer'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">erase</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'html'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">''</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
&nbsp;
   $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'new_div'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> newDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
   $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'remove_div'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> removeDiv<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div id="newElementContainer"></div>
<p>ID:</p>
<input id="id_input" name="id"/>
<p>текст:</p>
<input id="text_input" name="text"/>
<p><button id="new_div">создать блок</button><br />
<button id="remove_div">убрать все новые блоки</button></p>
<p>(а не попробовать ли слово “mootools” для ID? =) )</p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootool-day-6-html-manipulation.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Уроки Mootools – Урок 5 – Управление событиями</title>
		<link>http://php.infoniac.ru/mootools-tutorial-day-5-events.html</link>
		<comments>http://php.infoniac.ru/mootools-tutorial-day-5-events.html#comments</comments>
		<pubDate>Mon, 01 Jun 2009 14:01:49 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[события]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=532</guid>
		<description><![CDATA[Итак, мы начинаем наш 5-й урок по Mootools. В последнем уроке мы рассматривали различные пути создания и использования функций в Mootools 1.2. Нашим следующим шагом в познании этой библиотеки - это события. Аналогично селекторам, они очень важны для создания интерактивного пользовательскоо интерфейса (UI). Когда вы получаете доступ к какому-либо элементу, вам нужно будет решить какое именно событие вызовет необходимое действие.]]></description>
			<content:encoded><![CDATA[<h2>Управление событиями в Mootools 1.2</h2>
<p>Итак, мы начинаем наш 5-й урок по Mootools. В последнем уроке мы рассматривали различные пути создания и использования функций в Mootools 1.2. Нашим следующим шагом в познании этой библиотеки – это события. Аналогично селекторам, они очень важны для создания интерактивного пользовательскоо интерфейса (UI). Когда вы получаете доступ к какому-либо элементу, вам нужно будет решить какое именно событие вызовет необходимое действие.</p>
<p><span id="more-98"></span></p>
<style>
.block{
padding: 20px; 
width: 150px;
background-color: #eee;}
</style>
</p>
<h3>Единичный клик левой кнопкой мыши</h3>
<p>Один щелчок левой кнопкой мыши (левый клик) – это самыое распространенное событие в веб рабработке. В обычном HTML левый клик распознается гиперссылками, которые перенаправляют пользователя на указанный URL. В Mootools к любому элементу DOMа можно привязать лувый клик, что дает большую гибкость в плане дизайне и функционала интерфейса. Чтобы добавить событие левого клика к элементу необходимо:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//$('id_name') определяет элемент</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//.addEvent добавляет событие</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//('click') определяет тип события)</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//сюда вставляется код, который будет выполнятся при указанном событии)</span>
<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Теперь и по этому элементу можно кликнуть!'</span><span style="color: rgb(0, 153, 0);">)</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Тоже самое можно сделать и так:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> clickFunction <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//тут вы пишите код того, что должно произойти</span>
&nbsp;
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'этот элемент отслеживает клик'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> clickFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">body</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"id_name"</span>&gt;</span> <span style="color: rgb(0, 153, 0);">&lt;! -- этот элемент будет отслеживать клик по нему --&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">body</span>&gt;</span></pre>
</div>
</div>
<p><strong>Примечание:</strong> Также как и аналогичное событие у гиперсслок, событие клика в Mootools, на самом деле, распознает событие поднятия кнопки («mouse up»), что означает, что событие произойдет только после того, как пользователь отпустит кнопку мышки, а не когда нажмет на нее. Это делается для того, что бы дать пользователю возможность передумать убрав курсор мышки с элемента и отпустив кнопку уже вне его.</p>
<h3>События «mouseenter»  и «mouseleave»</h3>
<p>Как многим, я думаю, известно, ссылки в тексте HTML могут распознавать событие ‘hover’, что является ни что иное, как наведение курсором мышки на ссылку. С помощью Mootools аналог события ‘hover’ можно добавить и другим элементам DOMа, не только ссылкам. Более того, события Mootools разделены на два «подсобытия»: &nbsp;<strong>mouseenter</strong> (наведение курсора) и <strong>mouseleave</strong> (корсор убирается), что придает больший контроль над элементами DOMа при взаимодействии с пользователями.</p>
<p>Как и ранее, первым делом добавляем «прослушивание» элемента на определенное событие.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> mouseEnterFunction <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//тут вы пишите код того, что должно произойти</span>
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'этот элемент распознает наведение курсора мышки'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseenter'</span><span style="color: rgb(51, 153, 51);">,</span> mouseEnterFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Событие «mouseleave» работает аналогично:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> mouseLeaveFunction <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//тут вы пишите код того, что должно произойти</span>
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'этот элемент распознает отсутствие курсора мышки'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseleave'</span><span style="color: rgb(51, 153, 51);">,</span> mouseLeaveFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<h3>Удаление события</h3>
<p>При разработке приложений может понадобится убрать событие с элемента. Удаление событие, задвача настолько же простая, как и их добавление.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//робаетт также, как и предыдущие примеры,</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">//только метод addEvent заменяется на removeEvent</span>
$<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'id_name'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">removeEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseleave'</span><span style="color: rgb(51, 153, 51);">,</span> mouseLeaveFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<p>Для создания «прослушек» других событий, например нажатий клавиш «Control» или «Shift», синтаксис немного отличается:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> keyStrokeEvent <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>event<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">// а дальше написано вот что: "если нажатая кнопка была Shift, нужно сделать вот что"</span>
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>event.<span style="color: rgb(102, 0, 102);">shift</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"Вы нажали на Shift!"</span><span style="color: rgb(0, 153, 0);">)</span>
    <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'myTextarea'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'keydown'</span><span style="color: rgb(51, 153, 51);">,</span> keyStrokeEvent<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"body_wrap"</span>&gt;</span>
    <span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">textarea</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"myTextarea"</span>&gt;&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">textarea</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;</span></pre>
</div>
</div>
<h3>Вкусности <img src="http://php.infoniac.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> </h3>
<p>Вот несколько рабочих (вроке как) примеров кода, которые мы только что обсуждали:</p>
<p><i><u>Примечание</u></i>: попробуйте вот что: нажмите и удерживайте левую кнопку мыши на элемента, потом уберите с него курсор и отпустите кнопку уже вне элемента. Обратите внимание, что теперь страница не отреагирует на это событие.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> keyStrokeEvent <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>event<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">// вот тут говориться, что если нажатой кнопкой была буква k (лаинская, маленькая), вот что нужно сделать</span>
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>event.<span style="color: rgb(102, 0, 102);">key</span> <span style="color: rgb(51, 153, 51);">==</span> <span style="color: rgb(51, 102, 204);">'k'</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
	    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"Этот урок стал возможен только благодаря латинской букве 'k'."</span><span style="color: rgb(0, 153, 0);">)</span>
    <span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> mouseLeaveFunction <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//сюда можно вставить все, чтобы вы хотели, чтобы страница делала при этом событии</span>
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'этот элемент теперь распознает, когда курсор его покидает'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> mouseEnterFunction <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//сюда тоже самое</span>
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'этот элемент теперь видит, когда на него наводится курсор'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> clickFunction <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//и сюда</span>
    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'теперь этот элемент распознает клик по себе'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span>
&nbsp;
window.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'domready'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(0, 153, 0);">{</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'click'</span><span style="color: rgb(51, 153, 51);">,</span> clickFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'enter'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseenter'</span><span style="color: rgb(51, 153, 51);">,</span> mouseEnterFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'leave'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'mouseleave'</span><span style="color: rgb(51, 153, 51);">,</span> mouseLeaveFunction<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    $<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'keyevent'</span><span style="color: rgb(0, 153, 0);">)</span>.<span style="color: rgb(102, 0, 102);">addEvent</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'keydown'</span><span style="color: rgb(51, 153, 51);">,</span> keyStrokeEvent<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"click"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"block"</span>&gt;</span>Левый клик<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"enter"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"block"</span>&gt;</span>Курсор наведен<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">div</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"leave"</span> <span style="color: rgb(0, 0, 102);">class</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"block"</span>&gt;</span>Курсор убран<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">div</span>&gt;&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">br</span> <span style="color: rgb(102, 204, 102);">/</span>&gt;</span>
<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(0, 0, 0); font-weight: bold;">textarea</span> <span style="color: rgb(0, 0, 102);">id</span><span style="color: rgb(102, 204, 102);">=</span><span style="color: rgb(255, 0, 0);">"keyevent"</span>&gt;</span>Введите латинскую букву k<span style="color: rgb(0, 153, 0);">&lt;<span style="color: rgb(102, 204, 102);">/</span><span style="color: rgb(0, 0, 0); font-weight: bold;">textarea</span>&gt;</span></pre>
</div>
</div>
<div id="click" class="block">Левый клик</div>
</p>
<div id="enter" class="block">Курсор наведен</div>
</p>
<div id="leave" class="block">Курсор убран</div>
<p>
<textarea id="keyevent">Введите латинскую букву k</textarea></p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-tutorial-day-5-events.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Уроки Mootools – Урок 4 – Функции</title>
		<link>http://php.infoniac.ru/mootools-tutorial-day-4-functions.html</link>
		<comments>http://php.infoniac.ru/mootools-tutorial-day-4-functions.html#comments</comments>
		<pubDate>Wed, 20 May 2009 04:39:13 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[уроки mootools]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=86</guid>
		<description><![CDATA[Добро пожаловать на 4-й урок нашего "курса молодого бойца". Если вы впервые на моем блоге  и сразу попали на эту страницы, то вам стоит посмотреть <a href="http://php.infoniac.ru/category/mootools">предыдущие уроки из этой серии</a>. Сегодня мы пойдем немного не по тому пути, т.к. пройдемся немного по основам функций в JavaScript.]]></description>
			<content:encoded><![CDATA[<h2>Функции и Mootools 1.2</h2>
<p>Добро пожаловать на 4-й урок нашего &laquo;курса молодого бойца&raquo;. Если вы впервые на моем блоге  и сразу попали на эту страницы, то вам стоит посмотреть <a href="http://php.infoniac.ru/category/mootools">предыдущие уроки из этой серии</a>. Сегодня мы пойдем немного не по тому пути, т.к. пройдемся немного по основам функций в JavaScript.</p>
<p><span id="more-86"></span></p>
<p>Однако, не отходя все таки далеко от нашей основной темы &#8211; Mootools &#8211; вы должны помнить, где должен находится код ваших функций для использования в Mootools. В одном из наших предыдущих уроков мы рассматривали примеры использования функций внутри события <a href="http://php.infoniac.ru/what-is-domready.html">domready</a>.</p>
<p>В основном, конечно же, считается хорошим &laquo;программистским&raquo; тоном хранить все свои функции вне страницы с HTML кодом и вызывать их с помощью ссылок на js-файлы. Хотя с другой стороны, многие программисты не любят разбрасывать свой код по нескольким файлам, так как потом легче все найти, когда это все на одной странице. В наших уроках мы будем использовать такой шаблон объявления функций и их вызова из события domready: </p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
	<span style="color: #009966; font-style: italic;">/* * Тут определяется функция */</span>
	window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #009966; font-style: italic;">/* *Вызовы функции */</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Все примеры, представленные в этом уроке, используют этот шаблон. Как ни странно, она работают нормально (с условием, что в самом коде ошибок нет!). Под некоторыми примерами есть также и кнопки, с помощью которых можно испытать работоспособность этих примеров. Обращаю внимание на то, что в некоторых функциях я использовал обработчики событий (<em>event handlers</em>), о которых расскажу в следующем уроке.</p>
<h3>Основы</h3>
<p>В JavaScript существует несколько методов определения функций, а так как мы тут собрались поучить Mootools, будем использовать любимый метод разработчиков этой библиотеки. В следующем примере показана самая простая функция. Мы объявляем переменную, называем ее simple_function и определяем ее как функцию:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> simple_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></pre></div></div>

<p>После этого мы добавляем функцию alert, которая запустится при запуске нашей функции:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Самая обычная и простая функция'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>В конце концов, добавляем закрывающую фигурную скобку, которая является самым распространенной вещью, которую забывают поставить разработчики (у меня с этой скобкой отдельный счеты&#8230;я и так внимательностью не отличаюсь, так что не поставить закрывающую скобку для меня совсем не проблема):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#125;</span></pre></div></div>

<p>Такую ошибку довольно сложно выследить, поэтому я рекомендую при объявлении функций (да и вообще любых других методов, требующих открытие и закрытие скобок &#8211; итерации и условия) сразу начинать писать код <strong>внутри</strong> фигурных скобок. Но и конечно же проверять их наличие никогда не будет лишним.</p>
<p>Все вышеизложенное объединено в следующем примере. После объявления функции, мы вызываем ее уже из события domready, которое выполнит функцию по загрузке страницы. Нажмите на кнопку под кодом примера и получите результат вызова функции simple_function().</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//Определяем функцию simple_function</span>
<span style="color: #003366; font-weight: bold;">var</span> simple_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Самая обычная и простая функция'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//Вызываем нашу функцию по загрузке DOMa(страницы)</span>
    simple_function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="simple_button">Тестируем простую функцию</button></p>
<h3>Функция с одним параметром</h3>
<p>Очень полезно иметь функции, которые можно вызвать в любом месте файла, а еще более полезным будет возможность передавать параметры этим функциям. Для того, чтобы использовать параметры с функциями, мы их вставляем в скобки после ключевого слова <strong>function</strong>, вот так:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> имя_функции <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>имя_параметра<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/*сюда вставляется код функции*/</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Т.е. это я и многие другие привыкли так объявлять функции (я говорил об этом выше). В JavaScript параметры находятся также в круглых скобках, тогда как скобки находятся после названия функции, как тут:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> имя_функции <span style="color: #009900;">&#40;</span>имя_параметра<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/* код функции */</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>После объявления параметра, переменная будет доступна для работы с ней уже внутри самой функции. Несмотря на то, что называть параметры можно как душе угодно (латинскими буквами), рекомендую предавать их названию как можно больше описания того, для чего они предназначены. Например, если мы передаете в функцию параметр, содержащий название автомобиля, одним из вариантов хорошего названия параметра было бы <em>car_name</em> или даже <em>avto</em> подойдет, вместо чего-то вроде <em>info_ot_usera</em>.</p>
<p>В следующем примере, мы определим функцию, которая будет запрашивать только один параметр (с названием <em>parameter</em>) и вызывает предупреждение (<strong>alert()</strong>) с этим параметром. Несмотря на то, что первая часть сообщения заключается в единичные кавычки, параметр передается без них. При использовании параметров в сочетании со строками (как в нашем случае), их нужно соединять оператором &laquo;+&raquo;, как это показано в примере:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> single_parameter_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>parameter<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'наш параметр : '</span> <span style="color: #339933;">+</span> parameter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span> single_parameter_function<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Вот это параметр'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="single_parameter_button">Функция с одним параметром</button></p>
<h3>Передача нескольких параметров</h3>
<p>JavaScript не ограничивает в количестве возможных параметров функции, но всегда старайтесь передавать как можно меньше параметров из соображений последующей читабельности кода. Когда объявляются более одного параметра, они отделяются друг от друга запятыми, иначе функция посчитает, что ей передается лишь один параметр. Функции показанной ниже передаются два параметра в виде чисел, сумма которых присваивается переменой:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> third_number <span style="color: #339933;">=</span> first_number <span style="color: #339933;">+</span> second_number<span style="color: #339933;">;</span></pre></div></div>

<p>А после этого используется тот же оператор &laquo;+&raquo;, только уже в другом качестве, чтобы соединить результат в текстовую строку:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>first_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; плюс &quot;</span> <span style="color: #339933;">+</span> second_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; равно &quot;</span> <span style="color: #339933;">+</span> third_number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>На первый взгляд это может выглядеть запутанно, но на самом деле все просто. Если использовать знак плюса (+) с числами, обработчик суммирует числа, а применение его к строкам, соединяет строки в одну.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> two_parameter_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>first_number<span style="color: #339933;">,</span> second_number<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//Получаем сумму первого и второго числа</span>
    <span style="color: #003366; font-weight: bold;">var</span> third_number <span style="color: #339933;">=</span> first_number <span style="color: #339933;">+</span> second_number<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//Отобразить результат</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>first_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; плюс &quot;</span> <span style="color: #339933;">+</span> second_number <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; равно &quot;</span> <span style="color: #339933;">+</span> third_number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	two_parameter_function<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="two_parameter_button">Функция с двумя параметрами</button></p>
<h3>Возврат значений</h3>
<p>Отображение результатов функции в окне оповещений может быть полезным, но чаще всего такие результаты нужны для их дальнейшего использования. Для этого, нужно будет использовать функцию <span class="fn">return</span>. Следующий пример делает тоже самое, что и предыдущий, только на этот раз мы не будем отсылать результат в окно оповещения (<strong>alert()</strong>), а просто сделаем результат доступным для дальнейшего использования. Следующий пример возвращает сумму двух чисел из предыдущего примера:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">return</span> third_number<span style="color: #339933;">;</span></pre></div></div>

<p>Нужно отметить, что теперь нужно будет внести некоторые изменения и в функцию &#8216;<em>domready</em>&#8216;, а именно мы добавим переменную <strong>return_value</strong>, которой передадим результат работы функции, после чего используем ее в окне оповещения.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> two_parameter_returning_function <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>first_number<span style="color: #339933;">,</span> second_number<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> third_number <span style="color: #339933;">=</span> first_number <span style="color: #339933;">+</span> second_number<span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> third_number<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> return_value <span style="color: #339933;">=</span> two_parameter_returning_function<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;return value is : &quot;</span> <span style="color: #339933;">+</span> return_value<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><button id="two_parameter_returning_button">Функция с двумя параметрами с возвратом результата</button></p>
<h3>Использование функции как параметра</h3>
<p>Событие <span class="str">domready</span> использует в качестве параметра функцию:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/*ваш код*/</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Функция, передаваемая в качестве параметра, как показано в примере, называется анонимной функцией</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/*ваш код*/</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>И, раз уж зашел разговор о событии <span class="str">domready</span>, отмечу еще один (к уже указанным двум в <a href="http://php.infoniac.ru/mootorial-introduction-day1.html" title="30 дневный курс подготовки юного бойца – Mootools 1.2 – Урок 1 – Введение">первом уроке</a>) метод объявления функций в событии <em>domready</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//создаем функцию для вызова в событии domready</span>
<span style="color: #003366; font-weight: bold;">var</span> domready_function<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #009966; font-style: italic;">/* ваш код */</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//Назначаем созданную функцию в параметры события</span>
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> domready_function<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Пока, вроде, никто ничего не говорил по поводу того, есть ли какая-то разница в производительности и функциональности между всеми методами, так что, как объявлять функции &#8211; это сугубо личное дело каждого.</p>
<h3>Примеры</h3>
<p>Итак, переходим к самой вкусной части этого урока! Предлагаю поиграть  с цветом фона одного из блоков на этой странице. Это, конечно, абсолютно бессмысленно, но полезно, с точки зрения понимания того, что можно творить с помощью Mootools или JavaScript. Код в студию:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> changeColor <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Используем метод get чтобы получить значение цвета из текстовых блоков</span>
    <span style="color: #003366; font-weight: bold;">var</span> red <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'red'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> green <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'green'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> blue <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blue'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Убедимся, что все значения будут в формате целых чисел (метод toInt)</span>
    red <span style="color: #339933;">=</span> red.<span style="color: #660066;">toInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    green <span style="color: #339933;">=</span> green.<span style="color: #660066;">toInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    blue <span style="color: #339933;">=</span> blue.<span style="color: #660066;">toInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Убедимся, что каждое число - это значение между 1 и 255</span>
    <span style="color: #006600; font-style: italic;">//при необходимости, округляем (метод limit)</span>
    red <span style="color: #339933;">=</span> red.<span style="color: #660066;">limit</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    green <span style="color: #339933;">=</span> green.<span style="color: #660066;">limit</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    blue <span style="color: #339933;">=</span> blue.<span style="color: #660066;">limit</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//преобразовываем формат цвет из RGB в 16-ричную систему исчисления (метод rgbToHex)</span>
    <span style="color: #003366; font-weight: bold;">var</span> color <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>red<span style="color: #339933;">,</span> green<span style="color: #339933;">,</span> blue<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">rgbToHex</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//устанавливаем цвет блока (метод setStyle)</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background'</span><span style="color: #339933;">,</span> color<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #003366; font-weight: bold;">var</span> resetColor <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//вернуть белый цвет блока</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#fff'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
window.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'domready'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//Добавляем события click к каждой кнопке</span>
    <span style="color: #006600; font-style: italic;">//(метод addEvent - подробнее об этом поговорим в следующем уроке</span>
    <span style="color: #006600; font-style: italic;">//который будет готов очень скоро)</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'change'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> changeColor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'reset'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> resetColor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<div id="body_wrap" style="border:1px solid #000; padding: 7px;">
<p>Красный:</p>
<input type="text" id="red" size="3" value="255">
<p>Зеленый:</p>
<input type="text" id="green" size="3" value="255">
<p>Синий:</p>
<input type="text" id="blue" size="3" value="255">
<p><button id="change">Изменить цвет</button><br />
<button id="reset">Сбросить</button>
</div>
<p>
<script type="text/javascript">

var call_single = function(){single_parameter_function('Вот это параметр')}
var call_double = function(){two_parameter_function(10, 5)}
var call_double_return = function(){
	var return_value = two_parameter_returning_function(10, 5);
	alert("Возврат значения : " + return_value);
}

var simple_function = function(){alert('Самая обычная и простая функция');}
var single_parameter_function = function(parameter){alert('наш параметр : ' + parameter);}
var two_parameter_function = function(first_number, second_number){
		var third_number = first_number + second_number;
		alert(first_number + " плюс " + second_number + " равно " + third_number);
}
var two_parameter_returning_function = function(first_number, second_number){
		var third_number = first_number + second_number;
		return third_number;
}

var changeColor = function(){
	var red   = $('red').get('value');
	var green = $('green').get('value');
	var blue  = $('blue').get('value');

	red   = red.toInt();
	green = green.toInt();
	blue  = blue.toInt();
	
	red   = red.limit(1, 255)
	green = green.limit(1, 255)
	blue  = blue.limit(1, 255)
	
	var color = [red, green, blue].rgbToHex(); 
	$('body_wrap').setStyle('background', color);
}

var resetColor = function(){
	$('body_wrap').setStyle('background', '#fff');
}

window.addEvent('domready', function(){
	$('simple_button').addEvent('click', simple_function);
	$('single_parameter_button').addEvent('click', call_single);
	$('two_parameter_button').addEvent('click', call_double);
	$('two_parameter_returning_button').addEvent('click', call_double_return);
	$('change').addEvent('click', changeColor);
	$('reset').addEvent('click', resetColor);
});
</script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-tutorial-day-4-functions.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Уроки Mootools – Урок 3 &#8211; Массивы</title>
		<link>http://php.infoniac.ru/mootorial-arrays-day3.html</link>
		<comments>http://php.infoniac.ru/mootorial-arrays-day3.html#comments</comments>
		<pubDate>Thu, 23 Apr 2009 09:33:57 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[массивы]]></category>
		<category><![CDATA[работа с массивами]]></category>
		<category><![CDATA[уроки mootools]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=77</guid>
		<description><![CDATA[А если вы еще не в курсе, во нашем втором уроке о Mootools, мы говорили об основах этой библиотеки, о селекторах в Mootools. Мы также обсуждали селекторы, которые в своих результатах возвращали массивы данных (если кто не знает, в чем я конечно сомневаюсь, массивы &#8211; это специальные списки данных, организованные таким образом, чтобы давать пользователю [...]]]></description>
			<content:encoded><![CDATA[<p>А если вы еще не в курсе, во нашем втором уроке о Mootools, мы говорили об основах этой библиотеки, о <a href="http://php.infoniac.ru/mootorial-selectors-day2.html" title="30 дневный курс подготовки юного бойца – Mootools 1.2 – Урок 2 – Селекторы">селекторах в Mootools</a>. Мы также обсуждали селекторы, которые в своих результатах возвращали массивы данных (если кто не знает, в чем я конечно сомневаюсь, массивы &#8211; это специальные списки данных, организованные таким образом, чтобы давать пользователю обширные возможности по их управлению). Сегодня мы рассмотрим то, как использовать массивы, чтобы манипулировать элементами DOM-а.</p>
<p><span id="more-77"></span></p>
<h2>Основы</h2>
<h3>.each();</h3>
<p><em>.each();</em> &#8211; это ваш лучший друг при работе с массивами; это лучший способ применять любую функцию к каждому элементу массива. Например, скажем существует необходимость создать предупреждение <em>alert();</em> для каждого <code>div</code>-а на странице:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ДИВик'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>А с таким кодом HTML предыдущий код показал бы два предупреждения, по одному на каждый <code>div</code>.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>Один<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>Два<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p></p>
<p><em>.each();</em> не обязывает к использованию <em>$$</em>. Другой метод создания массива (как мы и говорили на прошлом уроке), это использование <em>.getElements();</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ДИВик'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;body_wrap&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>Первый<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>Второй<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p></p>
<p>Еще одни способ выполнить ту же задачу, это назначить массив переменной, после чего применить к ней метод <strong>.each();</strong></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//вначале следует объявить переменную с помощью ключевого слова var:</span>
<span style="color: #006600; font-style: italic;">//&quot;var ИМЯ_ПЕРЕМЕННОЙ_ЛАТИНСКИМИ_БУКВАМИ&quot;</span>
<span style="color: #006600; font-style: italic;">//за которым последует символ &quot;=&quot;, который и определяет данные объявленной переменной,</span>
<span style="color: #006600; font-style: italic;">//в нашем случае, это массив элементов div</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> myArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//теперь можно использовать эту переменную с массивом также,</span>
<span style="color: #006600; font-style: italic;">//как и селектор массивов, рассмотренный ранее</span>
&nbsp;
myArray.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ДИВик'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>После всего этого, может потребоваться отделить вашу функцию от селектора и от метода <strong>.each();</strong>. Для этого, мы рассмотрим более детально создание функции в следующем уроке, а пока будет достаточно и той простенькой, которую мы сейчас создадим:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> myArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//чтобы создать новую функцию, нужно, также, как и в случае с переменными,</span>
<span style="color: #006600; font-style: italic;">// объявить переменную, дав ей имя</span>
<span style="color: #006600; font-style: italic;">//а после знака равно, нужно ввести ключевое слово &quot;function()&quot;,</span>
<span style="color: #006600; font-style: italic;">//чтобы объявить, что переменная – это функция</span>
<span style="color: #006600; font-style: italic;">//после чего нужно поместить код функции в фигурные скобки (&quot;{...}&quot;)</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> myFunction <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ДИВик'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//а далее нужно просто вызвать функцию внутри метода .each();.</span>
&nbsp;
myArray.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>myFunction<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>Примечание: При вызове функции так, как мы это сделали в методе <strong>.each();</strong>, имя функции заключать в кавычки не нужно!</p>
<h2>Копирование массива</h2>
<h3>$A</h3>
<p>Библиотека Mootools предоставляет разработчикам простой способ копирования массивов с помощью функции $A. Давайте назначим массив переменной, как мы это сделали выше:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//создайте свою переменную с массивом</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> myArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>Для копирования массива нужно:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//создать новую переменную и скопировать в нее массив &quot;myArray&quot;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> myCopy <span style="color: #339933;">=</span> $A<span style="color: #009900;">&#40;</span>myArray<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>Теперь переменная myCopy содержит теже элементы, что и переменная myArray.</p>
<h2>Выбор определенного элемента в массиве</h2>
<h3>.getLast();</h3>
<p><strong>.getLast();</strong> вернет последний элемент массива. После создания массива:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> myArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>можно выбрать его последний элемент.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> lastElement <span style="color: #339933;">=</span> myArray.<span style="color: #660066;">getLast</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Переменная lastElement теперь является последним элементом массива myArray.</p>
<h3>.getRandom();</h3>
<p>Работает аналогично методу .getLast();, за исключением того, что произвольно выбирает элемент массива.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> randomElement <span style="color: #339933;">=</span> myArray.<span style="color: #660066;">getRandom</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>Переменная randomElement теперь является произвольно выбранный элемент массива myArray.</p>
<h2>Добавить элемент к массиву</h2>
<h3>.include();</h3>
<p>С помощью этого метода можно легко добавлять элементы в массив. Все, что нужно сделать, это вставить необходимый элемент в скобки метода <strong>.include();</strong> и присоединить всю конструкцию к массиву. С помощью следующего HTML кода</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;body_wrap&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>первый<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>второй<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
   	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;add_to_array&quot;</span>&gt;</span>добавить в массив<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p></p>
<p>можно создать такой же массив, как мы создавали и чуть выше, вызвав все <code>div</code>ы, находящиеся в элементе ‘body_wrap’.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> myArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Чтобы добавить элемент в уже соществующий массив, вначале нужно назначить для этого элемента переменную, а потом уже использовать метод <strong>.include();</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//вначале определяем переменную для элемента, который хотим добавить в массив</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> newToArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'add_to_array'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//после чего добавляем переменную в массив</span>
&nbsp;
myArray.<span style="color: #660066;">include</span><span style="color: #009900;">&#40;</span>newToArray<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>А теперь в нашем массиве находятся все элементы <code>div</code> и <code>span</code>.</p>
<h3>.combine();</h3>
<p>Этот метод работает также, как и <strong>.include();</strong>, с тем исключением, что позволяет добавить данные одного массива в другой, без того, исключая при этом дуплирование информации. Стоит также отметить, что метод <strong>.combine();</strong> является чувствительным к регистру, поэтому нужно быть внимательным при ее использовании. Предположим, у нас было создано 2 массива из следующего HTML кода:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;body_wrap&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>первый<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>второй<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;class_name&quot;</span>&gt;</span>добавляем в массив<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;class_name&quot;</span>&gt;</span>и это туда же<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;class_name&quot;</span>&gt;</span>снова туда же<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p></p>
<p>После чего мы может создать следующие два массива:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//создаем массив, так же, как мы это делали и ранее</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> myArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//потом, создаем массив из всех элементов с классом .class_name</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> newArrayToArray <span style="color: #339933;">=</span> $$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.class_name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>Теперь мы можем использовать <strong>.combine();</strong> чтобы комбинировать два созданных массива. Этот метод также исключит дубликаты информации.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//а потом комбинируйте переменную newArrayToArray c myArray</span>
&nbsp;
myArray.<span style="color: #660066;">combine</span><span style="color: #009900;">&#40;</span>newArrayToArray<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>
<p>Теперь массив myArray содержит все элементы массива newArraytoArray.</p>
<h3>Примеры</h3>
<p>Массивы позволяют вам производить какое-либо действие с целым списком элементов. В следующем примере видно, как можно использовать ключ. слово &laquo;item&raquo; как своего рода &laquo;местоимение&raquo; текущего элемента.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//создает массив всех жлементов в элементе #body_wrap классом .class_name</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> myArray <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body_wrap'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getElements</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.class_name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//вначале создадим новый элемент, который потом добавим к нашему массиву </span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> addSpan <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'addtoarray'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//а теперь создадим новый массив, который скомбинируем с нашим массивом</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> addMany <span style="color: #339933;">=</span> $$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.addMany'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//теперь можно добавить в массив элемент span</span>
&nbsp;
myArray.<span style="color: #660066;">include</span><span style="color: #009900;">&#40;</span>addSpan<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//и комбинировать массив addMany с массивом myArray myArray.combine(addMany);</span>
<span style="color: #006600; font-style: italic;">//теперь создадим функцию, которая пройдется по всем элементам (ITEM) массива</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> myArrayFunction <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//ключевое слово item теперь относится к текущему элементу в массиве,</span>
<span style="color: #006600; font-style: italic;">//к которому применяется функция</span>
	<span style="color: #000066; font-weight: bold;">item</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#eee'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//теперь вызовем созданную функцию myArrayFunction для каждого элемента в массиве</span>
<span style="color: #006600; font-style: italic;">//с помощью метода EACH</span>
&nbsp;
myArray.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>myArrayFunction<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;body_wrap&quot;</span>&gt;</span> 
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;class_name&quot;</span>&gt;</span>первый<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>второй<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span> 
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;class_name&quot;</span>&gt;</span>третий<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;addtoarray&quot;</span>&gt;</span>добавить в массив<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;addMany&quot;</span>&gt;</span>один из нескольких<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;addMany&quot;</span>&gt;</span>второй из нескольких<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<h2>Закругляемся&#8230;</h2>
<p>Ну что ж, вроде как все! Этот урок не претендует на то, чтобы показать вам все прелести того, что библиотека Mootools может делать с массивами, но, надеюсь, он дал вам идею того, что Mootools может предложить по этому поводу.</p>
<h3>А что будет завтра?</h3>
<p>В следующем уроке мы поговорим о функциях: о том как их создавать, как их использовать и для чего они вообще нужны.</p>
<p>В следующих нескольких уроках мы продолжим говорить об основах Mootools, нов дальнейшем перейдем к более сложным проектам, так что не забывайте все то, что уже знаете <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>Я пока все еще работаю над pdf-изацией всех документов на <a href="http://docs.mootools.net">docs.mootools.net</a>, но все равно рекомендую там иногда появляться и просматривать предназначения тех многочисленных функций и методов, которые предоставили нам разработчики Mootools. Я это тоже иногда делаю. Кстати, несмотря на полное отсутствие внимания к деталям, я недавно сделал небольшой скриптик, написанный на чистом Mootools, который заменяет цены на странице, в соответствии с введенным курсом обмена валют по ЦБ. Еще планирую автоматизировать этот процесс, что б скрипт сам откуда то брал нынешний курс валют&#8230; Если кому-то это интересно, могу выложить код, хотя, я уверен, все уже и так продвинулись дальше меня в этом всем <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p align="right">Как всегда, всем <strong>удачи в начинаниях!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootorial-arrays-day3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
