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

<channel>
	<title>jQuery и другое... &#187; Events</title>
	<atom:link href="http://www.linkexchanger.su/tag/events/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linkexchanger.su</link>
	<description>css, html, php, javascript, jQuery, ajax ... - решения, примеры, рецепты</description>
	<lastBuildDate>Sun, 08 Jan 2012 13:25:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery API: Events &#8211; события. Часть 2.</title>
		<link>http://www.linkexchanger.su/2008/60.html</link>
		<comments>http://www.linkexchanger.su/2008/60.html#comments</comments>
		<pubDate>Tue, 17 Jun 2008 00:00:11 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[документация jQuery]]></category>
		<category><![CDATA[события]]></category>

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

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

