<?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; уроки</title>
	<atom:link href="http://php.infoniac.ru/tag/%d1%83%d1%80%d0%be%d0%ba%d0%b8/feed/" rel="self" type="application/rss+xml" />
	<link>http://php.infoniac.ru</link>
	<description>Уроки программирования от новичка новичкам</description>
	<lastBuildDate>Tue, 20 Mar 2012 18:36:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Периодический запуск функций с помощью .periodical(); и введение в хеш-массивы &#8211; Урок 15</title>
		<link>http://php.infoniac.ru/periodical-i-hesh-massivy.html</link>
		<comments>http://php.infoniac.ru/periodical-i-hesh-massivy.html#comments</comments>
		<pubDate>Thu, 23 Sep 2010 05:33:40 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[periodical]]></category>
		<category><![CDATA[setinterval]]></category>
		<category><![CDATA[массивы]]></category>
		<category><![CDATA[периодичность]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[хеш-массивы]]></category>
		<category><![CDATA[хеши]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=700</guid>
		<description><![CDATA[В этом уроке мы рассмотрим две &#8220;полки&#8221; библиотеки: первая, это функция .periodical();, после которой мы проведем короткое введение в хеш-массивы. Periodical будет делать именно то, для чего её и придумали (вот так открытие!): она будет выполнять функцию с заданной периодичностью. Вторя &#8220;полка&#8221;, хеш-массивы &#8211; это наборы данных, состоящих из связки ключа и значения, записанных определенным [...]]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>В этом уроке мы рассмотрим две &#8220;полки&#8221; библиотеки: первая, это функция <strong>.periodical();</strong>, после которой мы проведем короткое введение в хеш-массивы. Periodical будет делать именно то, для чего её и придумали (вот так открытие!): она будет выполнять функцию с заданной периодичностью. Вторя &#8220;полка&#8221;, хеш-массивы &#8211; это наборы данных, состоящих из связки ключа и значения, записанных определенным образом. Итак, далее представим краткое введение в хеш-массивы и, если Вы все правильно поймёте, а я уверен в этом на 100% (ведь я то понял <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), то эти знания окажутся весьма полезными.</p>
<h2>.periodical()</h2>
<h3>Основы</h3>
<p>Всё просто: добавляем .periodical(); к названию функции и эта функция будет периодически запускаться. Вроде бы всё, но не всё. Как и всегда, есть ещё несколько вещей, которые нужно упомянуть. Итак, нам нужна будет функция, которую будем выполнять, и периодичность, в миллисекундах, с которой эта функция будет выполняться.</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> periodicalFunction <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: #006600; font-style: italic;">//в этом примере ф-ция periodical() запускаетя при загрузке страницы,</span>
    <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> <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;">//число в скобках означает частоту запуска функции, в миллисекундах</span>
        	<span style="color: #003366; font-weight: bold;">var</span> periodicalFunctionVar <span style="color: #339933;">=</span> periodicalFunction.<span style="color: #660066;">periodical</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</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>



<h3>Встроенная привязка с .bind();</h3>
<p>.periodical позволяет делать одну очень полезную вещь: она автоматически подставит переменную в качестве второго параметра. Например, если есть необходимость передать переменную за пределы <a href="http://php.infoniac.ru/what-is-domready.html">domready</a>, можно просто привязать эту переменную как второй параметр к функции, к которой привязываем periodical.</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: #006600; font-style: italic;">//передаем что-нибудь переменной</span>
    <span style="color: #003366; font-weight: bold;">var</span> periodicalFunctionVar <span style="color: #339933;">=</span> periodicalFunction.<span style="color: #660066;">periodical</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> passedVar<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>



<h3>Остановка запущенной по циклу функции</h3>
<h4>$clear()</h4>
<p>Для того, чтобы остановить выполнение функции, запущенной с помощью .periodical(), нужно использовать функцию $clear();. Тут все предельно просто:</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">	<span style="color: #006600; font-style: italic;">//удаляем из памяти переменную, которая содержала функцию и ее использование с periodical();</span>
    $clear<span style="color: #009900;">&#40;</span>periodicalFunctionVar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<h3>Пример</h3>
<p>Итак, подытожим&#8230; примером. Попробуем использовать несколько вещей, которые мы только что узнали (и немного до сели неизведанного), чтобы создать таймер. Вначале напишем 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;">button</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;timer_start&quot;</span>&gt;</span>пуск<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">button</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">button</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;timer_stop&quot;</span>&gt;</span>пауза<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">button</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">br</span> <span style="color: #66cc66;">/</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">button</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;timer_reset&quot;</span>&gt;</span>обновить<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">button</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;timer_bar&quot;</span>&gt;&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;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;timer_display&quot;</span>&gt;</span>0<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>Код Mootools в студию!</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> timerFunction <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;">//каждый раз, по вызову этой функции</span>
    <span style="color: #006600; font-style: italic;">//переменная currentTime будет увеличиваться на 1</span>
    <span style="color: #006600; font-style: italic;">//дальше остановимся более подробно на этом</span>
    <span style="color: #006600; font-style: italic;">//также, обратите внимание на использование конструкции &quot;this.counter&quot;</span>
    <span style="color: #006600; font-style: italic;">//&quot;this&quot; - это хеш-массив</span>
    <span style="color: #006600; font-style: italic;">//и &quot;counter&quot; это ключ</span>
    <span style="color: #006600; font-style: italic;">//и снова, более подробно остановимся на этом позже</span>
	<span style="color: #003366; font-weight: bold;">var</span> currentTime <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">counter</span><span style="color: #339933;">++;</span>
    <span style="color: #006600; font-style: italic;">/*я изменил первоначальный счетчик:
    дело в том, что если оставить счетчик на долго включенным
    строка может вытянуться довольно далеко, потому, пришлось
    доавить проверку ширины родительского элемента, что делается
    с помощью функции .getParent(), параметром которой можно указать не только
    название родительского тега, но даже и класс этого самого родительского элемента,
    а в моем случае, родительский класс называется post.
    Также обратите внимание на использование функции toInt(). Я думаю вы читали
    пост про фильтрацию и обработку чисел?
    */</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>currentTime <span style="color: #339933;">==</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_bar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getParent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.post'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'width'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_stop'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fireEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">//тут изменяем содержимое блока div, с данными о текущем времени таймера</span>
	<span style="color: #000066; font-weight: bold;">else</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_display'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'text'</span><span style="color: #339933;">,</span> currentTime<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">//тут изменяем ширину блока с графическим отображением длительности выполнения функции</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_bar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'width'</span><span style="color: #339933;">,</span> currentTime<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//устанавливаем атрибут disabled на true, чтобы выключить кнопку Пуска после самого пуска</span>
    <span style="color: #006600; font-style: italic;">//ниже я более подробно остановился на этом моменте</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_start'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><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> timerFunction <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> currentTime <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">counter</span><span style="color: #339933;">++;</span>
&nbsp;
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_display'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'text'</span><span style="color: #339933;">,</span> currentTime<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_bar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'width'</span><span style="color: #339933;">,</span> currentTime<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</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: #006600; font-style: italic;">//заодно познакомьтесь: простой хеш-массив, состоящий из одной пары ключ/значение</span>
    <span style="color: #003366; font-weight: bold;">var</span> currentCounter <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Hash<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>counter<span style="color: #339933;">:</span> <span style="color: #CC0000;">0</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: #006600; font-style: italic;">//и вторым параметром привязываем this к необходимой переменной</span>
    <span style="color: #003366; font-weight: bold;">var</span> simpleTimer <span style="color: #339933;">=</span> timerFunction.<span style="color: #660066;">periodical</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> currentCounter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">//так как нам не нужно, чтобы таймер запускался при загрузке страницы, мы его и не запускаем</span>
    $clear<span style="color: #009900;">&#40;</span>simpleTimer<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>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_start'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</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>
    	simpleTimer <span style="color: #339933;">=</span> timerFunction.<span style="color: #660066;">periodical</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> currentCounter<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>
    <span style="color: #006600; font-style: italic;">//следующая функция очищает периодичную функцию и подсвечивает строку таймера</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_stop'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</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>
    	$clear<span style="color: #009900;">&#40;</span>simpleTimer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_bar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">highlight</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#EFE02F'</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>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_reset'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</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;">//сброс вначале очищает периодичную функцию $clear(simpleTimer);</span>
        <span style="color: #006600; font-style: italic;">//устанавливая счетчик на 0</span>
        <span style="color: #006600; font-style: italic;">//немного далее немного более :)</span>
        currentCounter.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'counter'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #006600; font-style: italic;">//изменяем содержимое соответствующих элементов таймера</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_display'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'text'</span><span style="color: #339933;">,</span> currentCounter.<span style="color: #660066;">counter</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer_bar'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setStyle</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'width'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</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>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Опробуем таймер в действии?</p>
<table>
  <tr>
    <td><button id="timer_start">пуск</button><br />
      <button id="timer_stop">пауза</button><br />
      <button id="timer_reset">обновить</button></td>
    <td><div id="timer_display">0</div></td>
  </tr>
</table>
<div id="timer_bar"></div>
<p>Небольшое объяснения того, почему я выключаю кнопку Пуска при ее нажатии (она включается обратно при Паузе и Сбросе). Дело в том, что если повторно нажать Пуск, предварительно не остановив, счетчик &#8220;забежит&#8221; в два раза быстрее и его уже не остановить. А если потом ещё и ещё нажимать, скорость будет увеличиваться. Как бороться с этим явлением, я без понятия&#8230; Почему так происходит? Это, видимо, нужно разбираться в недрах и логике программирования, а мне сейчас не до этого.</p>
<p>И еще один момент: почему я установил</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;">'timer_start'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</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: #009900;">&#40;</span><span style="color: #3366CC;">'timer_start'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</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>
    	simpleTimer <span style="color: #339933;">=</span> timerFunction.<span style="color: #660066;">periodical</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> currentCounter<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>Тут получается довольно интересно и закручено, как в английском детективе. И тоже нужно разбираться в недрах, но в недрах функции .periodical(). Насколько я понимаю, все происходит примерно так: при клике на кнопку Пуск, мы повторно вызываем переменную <strong>simpleTimer</strong>, которая является хранителем периодичного запуска функции <strong>timerFunction</strong>. Итак, вызвав переменную simpleTimer, поделать уже ничего нельзя: определенная функция будет запускаться, пока ее не остановить. И вот, при каждом запуске функции она выполняет <code>$('timer_start').setStyle('disabled', 'true')</code>.</p>
<p>Кстати, просто использовать</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;">'timer_start'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span></pre></div></div>



<p>вместо</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;">'timer_start'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>не получилось. Кнопка Пуск все равно работает, а почему, не могу себе даже представить <img src='http://php.infoniac.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  .</p>
<h2>Введение в хеш-массивы</h2>
<h3>Создание нового хеш-массива</h3>
<p>В примере, приведенном выше, возможно есть некоторые вещи, с которыми Вы еще не сталкивались (точнее я Вас с ними еще не сталкивал, а где-то еще вы с ними уже сталкивались). В некоторых местах мы используем хеш-массива. Хешы &#8211; это наборы, состоящие из пары ключ/значение, которые очень схожи с массивами, так как они содержать несколько объектов, однако к каждому содержащемуся в хеше объекту привязывается ключ. Итак, посмотрим под лупой на хеши:</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">	<span style="color: #003366; font-weight: bold;">var</span> hashVar <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Hash<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">'первыйКлюч'</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'второйКлюч'</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Итак, слева у нас получается ключ, которому присваивается значение справа (те из Вас, о читатели, которые все-таки знают что такое хеш-массива и уже задумываются о том, чтобы просмотреть другие посты моего блога, хочу лишь сообщить, что я рассматриваю сейчас только основы основ хеш-массивов. Написание функций для хранения данных с помощью хешей я оставлю на тот момент, когда можно будет поговорить о классах). Итак, существует много плюсов в том, чтобы использовать именно хеш-массивы. Во-первых, в одном объекте можно хранить многочисленные наборы данных, процесс обратного получения которых довольно прост, также как и хранение комплексных структур данных.</p>
<h3>.set() и .get()</h3>
<p>При работе с хеш-массивами можно использовать знакомые функции <strong>.set()</strong> и <strong>.get()</strong>. Если нужно задать ключу какое-либо значение, вначале нужно определить ключ, потом задать ему значение через <strong>.set()</strong>. Если нужно получить значение, просто нужно определить ключ и применить к нему <strong>.get()</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: #006600; font-style: italic;">//первому ключу можно дать значение 200 вот так</span>
    hashVar.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'первыйКлюч'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">//с помощью .get() можно получить значение первого ключа</span>
    <span style="color: #006600; font-style: italic;">//после того, как мы дли ему значение 200, это значение мы и получим</span>
    <span style="color: #003366; font-weight: bold;">var</span> hashValue <span style="color: #339933;">=</span> hashVar.<span style="color: #660066;">get</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>Если использовать латинские буквы для назначение ключа, то значение этого ключа можно получить в формате имя_хеш_массива.имя_ключа. Вот так:</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> hashValue <span style="color: #339933;">=</span> hashVar.<span style="color: #660066;">pervyi</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//что означает тоже самое, что и</span>
<span style="color: #003366; font-weight: bold;">var</span> hashValue <span style="color: #339933;">=</span> hashVar.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'pervyi'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<h3>Добавляем новые данные в массив</h3>
<h4>.extend();</h4>
<p>Любой уже определенный хеш-массив можно дополнить новыми парами данных с помощью <strong>.extend()</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: #006600; font-style: italic;">//такой массив также состоит из пар ключ/значение</span>
    <span style="color: #006600; font-style: italic;">//но он не имеет возможностей хеша</span>
    <span style="color: #003366; font-weight: bold;">var</span> simpleObject <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">'третий'</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">450</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'четвертый'</span><span style="color: #339933;">:</span> <span style="color: #CC0000;">89</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Если есть необходимость добавить эти данные к уже существующему хеш-массиву, мы просто используем .extend(); для того, чтобы создать свободное место для этих данных.</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">	<span style="color: #006600; font-style: italic;">//так хеш-массив hashVar пополняется всеми данными массива simpleObject</span>
    hashVar.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span>simpleObject<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Очень важно помнить, что все дубликаты ключей будут переписаны вторым вариантом, т.е. тем, которым пополняем первый массив. Так, если у нас в первом массив была пара &#8220;первыйКлюч&#8221; : &#8220;буква А&#8221;, а в массиве, которым мы расширяем первый массив есть пара &#8220;первыйКлюч&#8221; : &#8220;буква Б&#8221;, то в окончательном массиве именно второй вариант выживет.</p>
<p>Если не хотите, чтобы второй вариант выжил, и вам нужно, что бы выжил именно первый вариант, нужно вместо <strong>.extend()</strong> использовать <strong>.combine()</strong>. В остальном функция <strong>.combine()</strong> работает также, как и <strong>.extend()</strong>.</p>
<h3>Удаляем пару данных из хеш-массива</h3>
<h4>.erase()</h4>
<p>Слово &#8220;erase&#8221; с английского переводится как &#8220;удалить&#8221;. Функция полностью оправдывает свое название: называете массив, добавляете <strong>.erase()</strong> и в скобках указываете ключ.</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">hashVar.<span style="color: #660066;">erase</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>



<h3>Хеш-массивы и функция .each()</h3>
<p>С функцией <strong>.each()</strong> многие, скорее всего, уже знакомы из урока про массивы. Как и в случае с массивами, <strong>.each()</strong> перебирает каждую единицу данных хеш-массива, применяя к ней пользовательскую функцию.</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">hashVar.<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>value<span style="color: #339933;">,</span> key<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: #006600; font-style: italic;">//вначале нужно передать значение, а потом уже и его ключ</span>
    <span style="color: #006600; font-style: italic;">//как и в случае с массивами: вначале item (значение), потом и index (его порядковый номер в массиве)</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>key <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;:&quot;</span> <span style="color: #339933;">+</span> 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>На этом, пожалуй, всё! Надеюсь, урок пригодится вам также, как и мне.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/periodical-i-hesh-massivy.html/feed/</wfw:commentRss>
		<slash:comments>0</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[<!-- google_ad_section_start --><p>Привет, люди планеты Земля! 1) хочу перед всеми извинится, если это кому-либо важно, за много месяxный перерыв… Мне стыдно!!!! Сам не ожидал, что так получится, но свадьба – дело тонкое, трудоемкое, которое требует много времени. Да, я женился, отдохнул, и готов к новым урокам. Еще, в качестве оправдания хочу сказать, что все это время я не забывал о блоге, своем не развитом, и хотя бы записывал идеи постов, которые, как мне кажется, окажутся полезными. Некоторые темы уже даже наполовину готовы, осталось только их дописать и опубликовать – всего ничего! Ну а пока, внимание! Смотрим на доску!</p>
<p>Если кто не заметил, я перешел от вручную написанного моим знакомым программистом движка на более популярный вордпрес. Это не означает, что ЦМСка моего знакомого не хороша – наоборот, она хороша тем, что она заточена под определенные действия, а именно под продвижение. Но, так как эту систему управления написал не я, я в ней совсем не разбираюсь, а дергать человека постоянно не хочу, решил перейти на вордпрес. Благо, по этой тематике в интернете много всего понаписано, да и просто покопаться в коде вордпреса тоже полезно для развития. Итак, все старые посты перекинуты, теперь все по-прежнему. Продолжаю публиковать уроки Mootools. Вот он следующий урок, о фильтрации текста.</p>
<span id="more-562"></span>
<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: #003366; font-weight: bold;">var</span> my_text_variable <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Сюда вставляем текстовую строку&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//  результат переменная с исходником.наименование функции</span>
<span style="color: #003366; font-weight: bold;">var</span> result_of_function <span style="color: #339933;">=</span> my_text_variable.<span style="color: #660066;">someStringFunction</span><span style="color: #009900;">&#40;</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;">var</span> result_of_function <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Сюда вставляем текст&quot;</span>.<span style="color: #660066;">someStringFunction</span><span style="color: #009900;">&#40;</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: #006600; font-style: italic;">//Обратите внимание на использование скобок</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//тогда как при работе со строками используются кавычки</span>
<span style="color: #003366; font-weight: bold;">var</span> limited_number <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">256</span><span style="color: #009900;">&#41;</span>.<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;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Также, хочет отметить вот что: Ява скрипты не должны вычищать пользовательский текст перед посылкой его на сервер для дальнейшей обработки. Все, что пишится на JavaScript может быть видно ВСЕМ посетителям страницы, эти скрипты можно включать/выключать, потому настоятельно рекоммендую не использовать JavaScript для обеспечения безопасности. Надеюсь не забуду провести небольшой дискурс по поводу безопасности с помощью PHP, когда мы дойдем до класса Mootools Request. И еще раз – все скрипты обеспечивающие безопасность должны выполняться на сервере, подальше от пользователя, а не с помощью JavaScript и всего к нему относящемуся!!!</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: #006600; font-style: italic;">//Текст, который мы &quot;тримируем&quot;</span>
<span style="color: #003366; font-weight: bold;">var</span> text_to_trim <span style="color: #339933;">=</span>  <span style="color: #3366CC;">&quot;    <span style="color: #000099; font-weight: bold;">\n</span>Строка с ненужным пустым местом     &quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//  переменная trimmed_text стала такой: &quot;Строка с ненужным пустым местом&quot;</span>
<span style="color: #003366; font-weight: bold;">var</span> trimmed_text <span style="color: #339933;">=</span> text_to_trim.<span style="color: #660066;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Если  вы еще не сталкивались с таким символом, как &#8220;\n&#8221;, сообщаю, что этот символ соответствует новой строке (от англ. &#8220;<em>Newline</em>&#8220;). Этот символ можно использовать в тексте, который нужно разбить на строки. Такой символ, или разрыв строк, фунцией <strong>trim()</strong> считается как пустое пространство, потому от него функция тоже избавляется. Жаль только, что <strong>trim()</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> trimDemo <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;">//дадим тексту переменную</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> text_to_trim <span style="color: #339933;">=</span>  <span style="color: #3366CC;">'            <span style="color: #000099; font-weight: bold;">\n</span>очень       много       белого<span style="color: #000099; font-weight: bold;">\n</span>              '</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//тримируем</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> trimmed_text <span style="color: #339933;">=</span> text_to_trim.<span style="color: #660066;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>nbsp<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><span style="color: #3366CC;">'До тримирования: <span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #339933;">+</span> 
		  <span style="color: #3366CC;">'|-'</span> <span style="color: #339933;">+</span> text_to_trim <span style="color: #339933;">+</span> <span style="color: #3366CC;">'-|<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #339933;">+</span>
&nbsp;
		  <span style="color: #3366CC;">'После тримирования : <span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #339933;">+</span>  
	      <span style="color: #3366CC;">'|-'</span> <span style="color: #339933;">+</span> trimmed_text <span style="color: #339933;">+</span> <span style="color: #3366CC;">'-|'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></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: #006600; font-style: italic;">//Текст для очистки</span>
<span style="color: #003366; font-weight: bold;">var</span> text_to_clean <span style="color: #339933;">=</span>  <span style="color: #3366CC;">&quot;    <span style="color: #000099; font-weight: bold;">\n</span>Текст     <span style="color: #000099; font-weight: bold;">\n</span>с      большим <span style="color: #000099; font-weight: bold;">\n</span> <span style="color: #000099; font-weight: bold;">\n</span>    количеством     <span style="color: #000099; font-weight: bold;">\n</span>пробелов  <span style="color: #000099; font-weight: bold;">\n</span>   &quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//  очищенный текст будет таким &quot;Текст с большим количеством пробелов&quot;</span>
<span style="color: #003366; font-weight: bold;">var</span> cleaned_text  <span style="color: #339933;">=</span> text_to_trim.<span style="color: #660066;">clean</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></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: #003366; font-weight: bold;">var</span> cleanDemo <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;">//Прикрепляем исходник к переменной</span>
	<span style="color: #003366; font-weight: bold;">var</span> text_to_clean <span style="color: #339933;">=</span>  <span style="color: #3366CC;">'            слишком <span style="color: #000099; font-weight: bold;">\n</span>       много<span style="color: #000099; font-weight: bold;">\n</span>       пробелов              '</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//Чистим</span>
	<span style="color: #003366; font-weight: bold;">var</span> cleaned_text <span style="color: #339933;">=</span> text_to_clean.<span style="color: #660066;">clean</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//Выводим результат в окно alert()</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'До чистки : <span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #339933;">+</span> 
		  <span style="color: #3366CC;">'|-'</span> <span style="color: #339933;">+</span> text_to_clean <span style="color: #339933;">+</span> <span style="color: #3366CC;">'-|<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #339933;">+</span>
&nbsp;
		  <span style="color: #3366CC;">'После чистки : <span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #339933;">+</span>  
	      <span style="color: #3366CC;">'|-'</span> <span style="color: #339933;">+</span> cleaned_text <span style="color: #339933;">+</span> <span style="color: #3366CC;">'-|'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>



<p>
  <button id="clean">Чистка</button>
</p>
<h3>contains()</h3>
<p>Как и 2 предыдущие рассмотренные функции, функция Mootools <strong>contains()</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: #006600; font-style: italic;">//Строка с исходным текстом</span>
<span style="color: #003366; font-weight: bold;">var</span> string_to_match <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;В этом тексте ведем поиск?&quot;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//Ищем слово &quot;тексте&quot;, did_string_match возвращает true</span>
<span style="color: #003366; font-weight: bold;">var</span> did_string_match <span style="color: #339933;">=</span> string_to_match.<span style="color: #660066;">contains</span><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: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//Ищем слово &quot;ужас&quot;, функция возвращает False</span>
did_string_match <span style="color: #339933;">=</span> string_to_match.<span style="color: #660066;">contains</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>Эта функция может пригодится во многих приложениях на Вашем сайте/блоге/сайте, особенно в комплексе с другими 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: #339933;">=</span> <span style="color: #3366CC;">&quot;сюда вставляем любой текст, в котором нужно проводить поиски&quot;</span><span style="color: #339933;">;</span>
	word_array <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'слова'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'которые'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'нужно'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'найти'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//Передаем каждое слово в качестве переменного аргумента функции</span>
	word_array.<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>word_to_match<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">//Поиск текущего слова</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>string_to_match.<span style="color: #660066;">contains</span><span style="color: #009900;">&#40;</span>word_to_match<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'было найдено слово'</span> <span style="color: #339933;">+</span> word_to_match <span style="color: #339933;">+</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>
&nbsp;
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>На базе такого примера можно сотворить много чудесных скриптиков, как например такой инструмент, вылавливающий нецензурные и бранные слова или названия конкурентных товаров или брендов <img src='http://php.infoniac.ru/wp-includes/images/smilies/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: #003366; font-weight: bold;">var</span> containsDemo <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>textAreaID<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">//Создаем список запрещенных слов</span>
	<span style="color: #003366; font-weight: bold;">var</span> banned_words <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'BMW'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'Audi'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'Fererro Roche'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'хрень'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'херня'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'мудак'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>	
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//берем содержимое тега textarea</span>
	<span style="color: #003366; font-weight: bold;">var</span> textarea_input <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>textAreaID<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: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//эта переменная будет отвечать за количество НЕ найденых совпадений</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> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
   	<span style="color: #006600; font-style: italic;">//используя функцию each() пробегаем по каждому слову этого текста</span>
	banned_words.<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>banned_word<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">//ищем запрещенные слова указанные в списке</span>
&nbsp;
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>textarea_input.<span style="color: #660066;">contains</span><span style="color: #009900;">&#40;</span>banned_word<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #339933;">&amp;</span>nbsp<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><span style="color: #3366CC;">'Слово '</span> <span style="color: #339933;">+</span> banned_word <span style="color: #339933;">+</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: #006600; font-style: italic;">//Если совпадение по очередному слову не найдено</span>
        <span style="color: #006600; font-style: italic;">//перемнная i увеличивается на 1</span>
		<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #339933;">++</span>i<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Если i ровняется количеству запрещенных слов, значит пользователь их не использовал</span>
    <span style="color: #006600; font-style: italic;">//Благодарим пользователя за чистоту речи</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">==</span>banned_words.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #000066;">alert</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Спасибо, что не используете ненависные нам слова!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>



<p>
  <textarea cols="70" rows="4" id="textarea_1">Как-то раз ехал на своем BMW на фабрику Fererro Roche и тут меня подрезает какой-то мудак на своем Audi. Я ему вдогонку кричу «Ты что за хрень вытворяешь, мудак!!! Что за херня!»</textarea>
  <br />
  <button id="contains">Проверка на запрещенные слова</button>
</p>
<p>
  <textarea cols="70" rows="5" id="textarea_2" style="padding: 5px;">Как-то раз ехал на своем автомобиле на фабрику одной известной компании по производству всяких разных сладостей и тут меня подрезает какой-то нехороший человек на своем автомобиле. Я ему вдогонку кричу «Ты что за нехорошую вещь вытворяешь, нехороший человек!!! Ну как же так?! Что за люди то неприличные!?!»</textarea>
  <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: #006600; font-style: italic;">//Это текст, который функция будет использовать</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> text_for_substitute <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Майонез - это {один},  Кетчуп - это {два}, Горчица - это {три}.&quot;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//Далее содаем объекс, в котором содержаться правила замены</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;">//в кавычки</span>
<span style="color: #003366; font-weight: bold;">var</span> substitution_object <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
	один<span style="color: #339933;">:</span> <span style="color: #3366CC;">'лучшая заправка для салата'</span><span style="color: #339933;">,</span> 
	два<span style="color: #339933;">:</span> <span style="color: #3366CC;">'соус, который хорошо подходит к мясу, особенно к шашлыку'</span><span style="color: #339933;">,</span> 
	три<span style="color: #339933;">:</span> <span style="color: #3366CC;">'такая замазка, иногда горькая, но в основном не очень. Хорошо  к мясу тоже подходит'</span>
&nbsp;
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//вызываем функцию substitute() с объектом, </span>
<span style="color: #006600; font-style: italic;">//в котором находятся шаблоны замены   </span>
<span style="color: #003366; font-weight: bold;">var</span> new_string <span style="color: #339933;">=</span> text_for_substitute.<span style="color: #660066;">substitute</span><span style="color: #009900;">&#40;</span>substitution_object<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//теперь наш текст выглядит вот так:</span>
<span style="color: #006600; font-style: italic;">//&quot;Майонез - это лучшая заправка для салата,</span>
<span style="color: #006600; font-style: italic;">//Кетчуп - это соус, который хорошо подходит к мясу, особенно к шашлыку,</span>
<span style="color: #006600; font-style: italic;">//Горчица - это такая замазка, иногда горькая, но в основном не очень. Хорошо  к мясу тоже подходит.&quot;</span></pre></div></div>



<p>Вообще не всегда обязательно нужно создавать объект с шаблонами, т.к. можно обойтись и таким кодом:</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> text_for_substitute <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;{это_нужно_заменить} и оригинальный текст&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//А шаблон для замены в виде объекта можно передать функции substitute()</span>
<span style="color: #006600; font-style: italic;">//в виде параметра</span>
<span style="color: #003366; font-weight: bold;">var</span> result_text <span style="color: #339933;">=</span> text_for_substitute.<span style="color: #660066;">substitute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>это_нужно_заменить<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Значение замены'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//результатом функции будет &quot;Значение замены и оригинальный текст&quot;</span></pre></div></div>


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


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> substituteDemo <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;">//Берем оригинальный тест из соответствующего элемента DOM</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> original_text <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'substitute_span'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</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> new_text <span style="color: #339933;">=</span> original_text.<span style="color: #660066;">substitute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		первый  <span style="color: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'first_value'</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: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'second_value'</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: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'third_value'</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: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//Заменяем первоначальный текст на новый</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'substitute_span'</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> new_text<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//Отключаем кнопку замены и включаем кнопку сброса</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'simple_substitute'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'simple_sub_reset'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> substituteReset <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;">//Создаем переменную для первоначального текста</span>
	<span style="color: #003366; font-weight: bold;">var</span> original_text <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;|- {first} -- {second} -- {third} -|&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//Заменяем текст в соответствующем элементе на первоначальный </span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'substitute_span'</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> original_text<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//Выключаем кнопку сброса и включаем кнопку замены</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'simple_sub_reset'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'simple_substitute'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">set</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'disabled'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>



<p id="substitute_span">|- {первый} — {второй} — {третий} -|</p>
<p>Первая замена: 
<input size="6" id="first_value" type="text"/>
Вторая замена:
<input size="6" id="second_value" type="text"/>
Третья замена:
<input size="6" id="third_value" type="text"/>
<button id="simple_substitute">Замена</button>
<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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;{раз} блаблабла {два} и пусть бе-бе-бе&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">substitute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>раз <span style="color: #339933;">:</span> <span style="color: #3366CC;">'текст на замену'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>В конечном итоге получится</p>
  <button id="last_warning">вот что</button><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/text-filtering-mootorial9.html/feed/</wfw:commentRss>
		<slash:comments>10</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[<!-- google_ad_section_start --><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>, что и возвращает нам строку в таком виде, в котором она нам нужна для вставки в атрибут цвета, т.е. &#8220;#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>
<!-- google_ad_section_end -->]]></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[<!-- google_ad_section_start --><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='http://php.infoniac.ru/wp-includes/images/smilies/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='http://php.infoniac.ru/wp-includes/images/smilies/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>
<!-- google_ad_section_end -->]]></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[<!-- google_ad_section_start --><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>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootool-day-6-html-manipulation.html/feed/</wfw:commentRss>
		<slash:comments>9</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[<!-- google_ad_section_start --><h2>Управление событиями в Mootools 1.2</h2>
<p>Итак, мы начинаем наш 5-й урок по Mootools. В последнем уроке мы рассматривали различные пути создания и использования функций в Mootools 1.2. Нашим следующим шагом в познании этой библиотеки – это события. Аналогично селекторам, они очень важны для создания интерактивного пользовательского интерфейса (UI). Когда вы получаете доступ к какому-либо элементу, вам нужно будет решить какое именно событие вызовет необходимое действие.</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: #006600; font-style: italic;">//$('id_name') определяет элемент</span>
<span style="color: #006600; font-style: italic;">//.addEvent добавляет событие</span>
<span style="color: #006600; font-style: italic;">//('click') определяет тип события - в данном случае клик)</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id_name'</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>
&nbsp;
<span style="color: #006600; font-style: italic;">//сюда вставляется код, который будет выполнятся при указанном событии)</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: #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;">var</span> clickFunction <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;">//тут вы пишите код того, что должно произойти</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>
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: #009900;">&#40;</span><span style="color: #3366CC;">'id_name'</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> clickFunction<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 class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #ddbb00;">&amp;lt;</span>body&gt;
    <span style="color: #ddbb00;">&amp;lt;</span>div id=&quot;id_name&quot;&gt; <span style="color: #ddbb00;">&amp;lt;</span>! -- этот элемент будет отслеживать клик по нему --&gt;
    <span style="color: #ddbb00;">&amp;lt;</span>/div&gt;
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>/body&gt;</pre></div></div>



<p><strong>Примечание:</strong> Также как и аналогичное событие у гиперссылок, событие клика в Mootools, на самом деле, распознает событие поднятия кнопки («mouseup»), что означает, что событие произойдет только после того, как пользователь отпустит кнопку мышки, а не когда нажмет на нее. Это делается для того, что бы дать пользователю возможность передумать убрав курсор мышки с элемента и отпустив кнопку уже вне его.</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: #003366; font-weight: bold;">var</span> mouseEnterFunction <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;">//тут вы пишите код того, что должно произойти</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>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</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: #009900;">&#40;</span><span style="color: #3366CC;">'id_name'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mouseenter'</span><span style="color: #339933;">,</span> mouseEnterFunction<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>Событие «mouseleave» работает аналогично:</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> mouseLeaveFunction <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: #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;">&amp;</span>nbsp<span style="color: #339933;">;</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>
&nbsp;
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id_name'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mouseleave'</span><span style="color: #339933;">,</span> mouseLeaveFunction<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>



<h3>Удаление события</h3>
<p>При разработке приложений может понадобится убрать событие с элемента. Удаление событие, задача настолько же простая, как и их добавление.</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: #006600; font-style: italic;">//только метод addEvent заменяется на removeEvent</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'id_name'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mouseleave'</span><span style="color: #339933;">,</span> mouseLeaveFunction<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</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: #003366; font-weight: bold;">var</span> keyStrokeEvent <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// а дальше написано вот что: &quot;если нажатая кнопка была Shift, нужно сделать вот что&quot;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">shift</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;">&quot;Вы нажали на Shift!&quot;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</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: #009900;">&#40;</span><span style="color: #3366CC;">'myTextarea'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'keydown'</span><span style="color: #339933;">,</span> keyStrokeEvent<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>





<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #ddbb00;">&amp;lt;</span>div id=&quot;body_wrap&quot;<span style="color: #ddbb00;">&amp;gt;</span>
    <span style="color: #ddbb00;">&amp;lt;</span>textarea id=&quot;myTextarea&quot;<span style="color: #ddbb00;">&amp;gt;&amp;lt;</span>/textarea<span style="color: #ddbb00;">&amp;gt;</span>
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>/div<span style="color: #ddbb00;">&amp;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><em><strong>Примечание</strong></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> keyStrokeEvent <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// вот тут говориться, что если нажатой кнопкой была буква k (латинская, маленькая), вот что нужно сделать</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">key</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'k'</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;">&quot;Этот урок стал возможен только благодаря латинской букве 'k'.&quot;</span><span style="color: #009900;">&#41;</span>  
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> mouseLeaveFunction <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;">//сюда можно вставить все, чтобы вы хотели, чтобы страница делала при этом событии</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>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> mouseEnterFunction <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;">//сюда тоже самое</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>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> clickFunction <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;">//и сюда</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>
&nbsp;
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</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: #009900;">&#40;</span><span style="color: #3366CC;">'click'</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> clickFunction<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'enter'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mouseenter'</span><span style="color: #339933;">,</span> mouseEnterFunction<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'leave'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mouseleave'</span><span style="color: #339933;">,</span> mouseLeaveFunction<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'keyevent'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'keydown'</span><span style="color: #339933;">,</span> keyStrokeEvent<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 class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #ddbb00;">&amp;lt;</span>div id=&quot;click&quot; class=&quot;block&quot;<span style="color: #ddbb00;">&amp;gt;</span>Левый клик<span style="color: #ddbb00;">&amp;lt;</span>/div<span style="color: #ddbb00;">&amp;gt;&amp;lt;</span>br /<span style="color: #ddbb00;">&amp;gt;</span>
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>div id=&quot;enter&quot; class=&quot;block&quot;<span style="color: #ddbb00;">&amp;gt;</span>Курсор наведен<span style="color: #ddbb00;">&amp;lt;</span>/div<span style="color: #ddbb00;">&amp;gt;&amp;lt;</span>br /<span style="color: #ddbb00;">&amp;gt;</span>
<span style="color: #ddbb00;">&amp;lt;</span>div id=&quot;leave&quot; class=&quot;block&quot;<span style="color: #ddbb00;">&amp;gt;</span>Курсор убран<span style="color: #ddbb00;">&amp;lt;</span>/div<span style="color: #ddbb00;">&amp;gt;&amp;lt;</span>br /<span style="color: #ddbb00;">&amp;gt;</span>
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>textarea id=&quot;keyevent&quot;<span style="color: #ddbb00;">&amp;gt;</span>Введите латинскую букву k<span style="color: #ddbb00;">&amp;lt;</span>/textarea<span style="color: #ddbb00;">&amp;gt;</span></pre></div></div>



<div id="click" class="block">Левый клик</div>
<br />
<div id="enter" class="block">Курсор наведен</div>
<br />
<div id="leave" class="block">Курсор убран</div>
<p>
  <textarea id="keyevent" rows="1" cols="30" >Введите латинскую букву &#8220;k&#8221; (или русскую &#8220;л&#8221;)</textarea>
  <br />
</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-tutorial-day-5-events.html/feed/</wfw:commentRss>
		<slash:comments>6</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[<!-- google_ad_section_start --><h2>Функции и Mootools 1.2</h2>
<p>Добро пожаловать на 4-й урок нашего &#8220;курса молодого бойца&#8221;. Если вы впервые на моем блоге  и сразу попали на эту страницы, то вам стоит посмотреть <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>В основном, конечно же, считается хорошим &#8220;программистским&#8221; тоном хранить все свои функции вне страницы с 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>) с этим параметром. Несмотря на то, что первая часть сообщения заключается в единичные кавычки, параметр передается без них. При использовании параметров в сочетании со строками (как в нашем случае), их нужно соединять оператором &#8220;+&#8221;, как это показано в примере:</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> single_parameter_function<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Вот это параметр'</span><span style="color: #009900;">&#41;</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>А после этого используется тот же оператор &#8220;+&#8221;, только уже в другом качестве, чтобы соединить результат в текстовую строку:</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>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-tutorial-day-4-functions.html/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

