<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <atom:link rel="self" type="application/rss+xml" href="http://breys.ru/rss"/>
    <language>ru</language>
    <copyright>Copyright 2008,2009 breys.ru</copyright>
    <title>Заметки на breys.ru</title>
    <link>http://breys.ru/blog/</link>
    <description>Заметки по теме: jQuery, Брейс - дизайн студия</description>
    <item>
      <link>http://breys.ru/blog/1553.html</link>
      <guid>http://breys.ru/blog/1553.html</guid>
      <title>Jquery JqueryUI  autocomplete, пример настройки автодополнения с произвольным словарём</title>
      <pubDate>Fri, 19 Apr 2013 14:15:04 +0400</pubDate>
      <description>&lt;p&gt;Была поставлена задача обеспечить оффлайновый ресурс(CD диск) возможностью поиска по используемой в онлайн базе данных.&lt;/p&gt;
&lt;p&gt;Самым  простым и удобным решением оказалось выгрузить базу с нужными ключами в  JS файл и использовать полученный словарь прямо на странице совместно с  jqueryui.autocomplete&lt;/p&gt;
&lt;p&gt;Для этого нужно настранице разместить  форму с полем для ввода ключевых слов и полем для отображения полученной  ссылки, затем подключить библиотеку JqueryUI&amp;nbsp; и настроить конструктор  autocomplete на то, чтобы он правильно обрабатывал формат моего словаря.  У меня получилась примерно вот такая форма:&lt;/p&gt;
&lt;pre&gt;&amp;lt;div id="ac-search"&amp;gt;Поиск:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input id="search" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p id="search-href"/&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;На  этой форме я буду использовать id="search" для того чтобы подключить к  этому полю выпадающий список и параграф id="search-href" для вывода  результатов&lt;/p&gt;
&lt;p&gt;В моём случае формат словаря определялся Json ответом CMS сайта:&lt;/p&gt;
&lt;pre&gt;{"polish": {"peoples": {"row": polish_peoples = [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1, "Джугашвили Иосиф Виссарионович (1878&amp;mdash;1953)"],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [2, "Путин Владимир Владимирович (1952&amp;mdash;)"], &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3, "Романов Николай Александрович (1894&amp;mdash;1917)"],&lt;br /&gt;]}}}&lt;/pre&gt;
&lt;p&gt;Вот пример как использовать это совместно с Ajax+Json&lt;/p&gt;
&lt;pre&gt;$.get("/app.py",{plugins:"peoples2json",format:"json",short_name:"peoples"},function(data){&lt;br /&gt;// запрос к сайту в надежде получить JSON объект&lt;br /&gt; if(data.polish.peoples){&lt;br /&gt;// если получен нужный объект то отыскиваем поле ввода #search и конструкируем из него autocomplete&lt;br /&gt; $( "#search" ).autocomplete({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minLength: 0,&lt;br /&gt;// в качестве словаря по которому будет производиться поиск передаю массив заголовков и номеров страниц&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source: data.polish.peoples.row,&lt;br /&gt;// описываю свой обработчик события когда пользователь выбирает какое либо значение из всплывшего списка&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select: function( event, ui ) {&lt;br /&gt;// код обработчика знает какой элемент моего словаря выбрал посетитель, а я зная структуру элемента &lt;br /&gt;// формирую нужный результат и вставляю полученную ссылку в поле #search-href&lt;br /&gt;// 1ой[0] элемент моего массива содержит ID страницы, &lt;br /&gt;//а 2ой[1] элемент это заголовок, импользуя эти данные я формирую ссылку на новую вкладку и вславляю в туда куда нужно&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $( "#search-href" ).html( "&amp;lt;a target=&amp;#039_blank&amp;#039 href=&amp;#039/blog/"+ui.item[0]+".html&amp;#039&amp;gt;"+ui.item[1]+"&amp;lt;/a&amp;gt;" );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }).data( "ui-autocomplete" )._renderItem = function( ul, item ) {&lt;br /&gt;// определение этой функции необходимо потому что объект autocomplete &lt;br /&gt;// не знает из каких полей моего словаря формировать ссылки в всплываюшем списке&lt;br /&gt;// то-есть при условии нахождения ключевого слова набранного посетителем &lt;br /&gt;// для каждой подходящей строки моего словаря будет вызывать функция _renderItem&lt;br /&gt;// а результат этой функции будет формировать выпадающей список&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $( "&amp;lt;li&amp;gt;" ).append( "&amp;lt;a&amp;gt;" + item[1] + "&amp;lt;/a&amp;gt;" ).appendTo( ul );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; },"json");&lt;/pre&gt;
&lt;p&gt;Для  оффлайн версии всё немного проще, для этого нужно JSON результат  сохранить в JS файле на сервере, я его немного упростил и у меня  получилось вот так&lt;/p&gt;
&lt;pre&gt;peoples = [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1, "Джугашвили Иосиф Виссарионович (1878&amp;mdash;1953)"],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [2, "Путин Владимир Владимирович (1952&amp;mdash;...)"], &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3, "Романов Николай Александрович (1894&amp;mdash;1917)"],&lt;br /&gt;];&lt;/pre&gt;
&lt;p&gt;затем  нужно подключить этот файл на страницу так чтобы внутри пространства  имён JS была доступна переменная peoples, а затем активировать  jqueryui.autocomplete вот так:&lt;/p&gt;
&lt;pre&gt; $( "#search" ).autocomplete({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minLength: 0,&lt;br /&gt;// использую peoples из подключенного JS файла&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source: peoples,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select: function( event, ui ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $( "#search-href" ).html( "&amp;lt;a target=&amp;#039_blank&amp;#039 href=&amp;#039/blog/"+ui.item[0]+".html&amp;#039&amp;gt;"+ui.item[1]+"&amp;lt;/a&amp;gt;" );&lt;br /&gt;// подсветка результата эффектом highlight&lt;br /&gt; $( "#search-href" ).effect("highlight", {}, 3000);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }).data( "ui-autocomplete" )._renderItem = function( ul, item ) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $( "&amp;lt;li&amp;gt;" ).append( "&amp;lt;a&amp;gt;" + item[1] + "&amp;lt;/a&amp;gt;" ).appendTo( ul );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;вроде бы всё просто и понятно, а вот &lt;a href="http://polish.gaspiko.ru/blog_ru_short_peoples.html"&gt;рабочий пример (попробуйте поискать по слову Ломко)&lt;/a&gt;&lt;/p&gt;</description>
      <author>ffsdmad@jabber.ru ( Басманов ) </author>
    </item>
    <item>
      <link>http://breys.ru/blog/529.html</link>
      <guid>http://breys.ru/blog/529.html</guid>
      <title>jQuery: простые примеры</title>
      <pubDate>Mon, 21 Dec 2009 20:00:45 +0400</pubDate>
      <description>&lt;p&gt;Вот ещё парочка простых но полезных примеров динамическое меню и функция инвертировать checkbox&lt;/p&gt;
&lt;p&gt;В меню и простых div, span и a Необходимо, чтобы при кликанье по пунктам все другие закрывались, а текущее подменю раскрывалось. вот код:&lt;/p&gt;
&lt;pre&gt;$(document).ready(function() {&lt;br /&gt;/* эта функция аналог body onload() */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* выбираем Первый div внутри div.menu и делаем его видимым*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("div.menu div:first").show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* выбираем все спаны внутри div.menu, и подключем к ним функцию onclick() */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("div.menu span").bind("click", function(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("div.menu div").hide(100);/* скрываем все дивы внутри div.menu за 100 милисекунд */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("div.menu span").removeAttr("class"); /* удаляем класс у спанов, убираем жирность */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(this).next().show(250); /* находим следующий после текущего (this) тег и делаем его видимым за 250 милисекунд */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(this).attr("class","spanb"); /* устанавливаем для текущего спана(по которому счёлкнули) класс */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;});&lt;/pre&gt;
&lt;p&gt;и имеется форма с группой checkbox, необходимо добавить кнопку инвертирующую текущее состояние ВСЕ чекбоксов, вот такой код&lt;/p&gt;
&lt;pre&gt;function select_all(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* выбираю все чекбоксы внутри формы внутри div.menu и меняю у них свойство checked на обратное */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("div.menu form input:checkbox").each( function() {$(this).attr(&amp;#039;checked&amp;#039;, !$(this).attr(&amp;#039;checked&amp;#039;));})&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;&lt;a href="/example/jquery.example2.html"&gt;рабочий пример можно посмотреть вот тут&lt;/a&gt;&lt;/p&gt;</description>
      <author>ffsdmad@jabber.ru ( Басманов ) </author>
    </item>
    <item>
      <link>http://breys.ru/blog/487.html</link>
      <guid>http://breys.ru/blog/487.html</guid>
      <title>jQuery, создание плагина на примере слайдера</title>
      <pubDate>Fri, 27 Nov 2009 13:18:39 +0400</pubDate>
      <description>&lt;p&gt;Стоит задача представить группу картинок в определённом блоке в виде переключаемых по наведению слайдов. В частности супруга хочет, чтобы в её портфолио было минимум по две фотографии - до и после обработки, но отображалась бы только одна, а вторая только при наведении на первую&lt;/p&gt;
&lt;p&gt;Для написания плагина на jQuery нужно использовать скелет такого плагина, я использую этот, он довольно наглядо показывает как устроен плагин&lt;/p&gt;
&lt;pre&gt;jQuery.log = function(message) {&lt;br /&gt;&amp;nbsp; if(window.console) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.debug(message);&lt;br /&gt;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(message);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;};&lt;br /&gt;jQuery.log("jQuery test!!!")&lt;/pre&gt;
&lt;p&gt;Суть этого кода в том, что мы создали внутри jQuery функцию которая печатает сообщение либо в консоль Firebug либо выводит, привычным для многих, алертом. Кстати его довольно удобно использовать при отладке JS кода.&lt;/p&gt;
&lt;p&gt;Идея слайдера в том, что скрываются ВСЕ, кроме первой, фотографии в блоке, затем к первой фотографии прицепляется обработчик который при наведении курсора меняет значения src&amp;nbsp; и title у первой фотографии, а берёт эти значения из словаря видимого только внутри плагина. Теперь собственно код плагина слайдера:&lt;/p&gt;
&lt;pre&gt;(function($){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jQuery.fn.ffslider = function(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function next_img(img,name) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(list_slide[name].pos==list_slide[name].count)list_slide[name].pos=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img.src=list_slide[name].img[list_slide[name].pos].src;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img.title=list_slide[name].img[list_slide[name].pos].title;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list_slide[name].pos+=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var element = this;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var list_slide=new Object();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; element.each( function(i){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var dslid = this;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = $("img",dslid).length&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(count&amp;gt;1){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ndslid = "slider"+i;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(dslid).attr("id",ndslid);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list_slide[ndslid]={num:i,pos:1,count:$("img",dslid).length,img:new Array(count)};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("img",dslid).each(function(j){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var img = this;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; list_slide[ndslid].img[j]={title:img.alt,src:img.src};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("img:first",dslid).bind("mouseover",{n:ndslid},function(event){next_img(this,event.data.n)})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("img:first",dslid).bind("mouseout",{n:ndslid},function(event){next_img(this,event.data.n)})&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("img:first",dslid).show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return element;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;})(jQuery);&lt;/pre&gt;
&lt;p&gt;Здесь внутри jQuery создаётся объект jQuery.fn.ffslider к которому привязывается функция которая представляет собой описание класса слайдера. Она содержит внутри себя функцию переключения изображения (пока только вперёд) next_img&amp;nbsp; и два цикла, первый перебирает все подходящие блоки (это может быть как один так и множество блоков), а в каждом блоке обрабатывает все изображения формируя при этом "именной" для блока "словарь" в котором хранится информация для работы слайдера. Если разложить этот словарь то получится чтото вроде&lt;/p&gt;
&lt;pre&gt;list_slide={&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "slider1":{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count:2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos:1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img:[(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {title:"image1",src:"http://breys.ru/upload/images/1259311393.81.JPG"}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,{title:"image2",src:"http://breys.ru/upload/images/1259311339.92.JPG"})]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "slider2":{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count:2,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos:1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; img:[(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {title:"image3",src:"http://breys.ru/upload/images/1259311453.81.JPG"}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,{title:"image4",src:"http://breys.ru/upload/images/1259311579.92.JPG"})]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;Такой "словарь" позволяет во-первых создавать n-количество "слайдеров", а во-вторых используется функцией для "круговорота" фотографий в слайдере. И вообще очень удобная вещь, например чтобы получить заголовок и адрес второй картинки во втором блоке нужно написать так:&lt;/p&gt;
&lt;pre&gt;jQuery.log( list_slide["slider2"].img[1].title + " = " + list_slide["slider2"].img[1].src )&lt;/pre&gt;
&lt;p&gt;После создания "словаря" плагин находит ПЕРВОЕ изображение, создаёт для него обработчики событий mount[over|out] в котором вызывается функция цикличной смены изображения, а под конец делает ПЕРВОЕ изображение в списке видимым.&lt;/p&gt;
&lt;p&gt;Если в блоге находиться только одна фотография то плагин только делает её видимой, пропуская этот блок&lt;/p&gt;
&lt;p&gt;Стоит обратить внимание, что функция возвращает элемент this, это необходимо (но не обязательно) чтобы можно было использовать слайдер в каскадах/цепочках вызовов функция jQuery, например&lt;/p&gt;
&lt;pre&gt;$(".pages .slider").ffslider().remove();&lt;/pre&gt;
&lt;p&gt;Тут будет инициализированы все слайдеры, а затем удалены :)&lt;/p&gt;
&lt;p&gt;Теперь, чтобы применить этот плагин необходимо подготовить&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;html - поместить изображение в блок с классом slider, не принципиально, так как можно при запуске слайдера указать даже body&lt;/li&gt;
&lt;li&gt; css - скрыть все изображения внутри блока, важно иначе все изображения будут отображены, а первое будет моргать при наведении&lt;/li&gt;
&lt;li&gt;включить плагин в момент загрузки страницы&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&amp;lt;script type="text/javascript" src="http://breys.ru/js/jquery.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(document).ready(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(".slider").ffslider();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .slider img{display:none;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class="slider"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src="http://breys.ru/upload/images/1258398987.03.png" alt="Скриншоты Linux версии игры Machinarium"&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src="http://breys.ru/upload/images/1258399034.81.jpeg" alt="Скриншоты Linux версии игры Machinarium"&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src="http://breys.ru/upload/images/1258399057.32.jpeg" alt="Скриншоты Linux версии игры Machinarium"&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src="http://breys.ru/upload/images/1258399088.85.jpeg" alt="Скриншоты Linux версии игры Machinarium"&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src="http://breys.ru/upload/images/1258399100.32.jpeg" alt="Скриншоты Linux версии игры Machinarium"&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;img src="http://breys.ru/upload/images/1258399110.05.jpeg" alt="Скриншоты Linux версии игры Machinarium"&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;a title="Смотреть пример создания плагина" href="/example/jquery.example1.html"&gt;А вот так это выглядит&lt;/a&gt;, по-моему получился довольно удобный, компактный и вроде бы расширяемый плагин&lt;/p&gt;</description>
      <author>ffsdmad@jabber.ru ( Басманов ) </author>
    </item>
    <item>
      <link>http://breys.ru/blog/400.html</link>
      <guid>http://breys.ru/blog/400.html</guid>
      <title>jQuery, сериализация данных при обработке формы</title>
      <pubDate>Wed, 02 Sep 2009 11:59:14 +0400</pubDate>
      <description>&lt;p&gt;Сериализация формы необходима когда нужно отправить данные с формы с помощью &lt;strong&gt;Ajax&lt;/strong&gt; запроса, при этом бывает нужно добавить некоторые параметры которых нет на форме. В &lt;strong&gt;jQuery&lt;/strong&gt; это делается вот так&lt;/p&gt;
&lt;pre&gt;function get_rand(){&lt;br /&gt;  var d = new Date();&lt;br /&gt;  return d.getTime();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function save_anketa(){&lt;br /&gt;  var fields = $("#anketa form").serializeArray();&lt;br /&gt;  fields["d"]=get_rand()&lt;br /&gt;  $.post("/cgi-bin/script.py",fields,function(data){alert(data)})&lt;br /&gt; }&lt;/pre&gt;
&lt;p&gt;Тут происходит поск формы в блоке с id="anketa", затем поля формы с помощью функции &lt;strong&gt;serializeArray&lt;/strong&gt; преобразуются в словарь (как Python), затем в этот словарь добавляется параметр со случайными данными, это необходимо чтобы гадский MSIE не кешировал повторный запрос&lt;/p&gt;
&lt;p&gt;Затем полученный словарик с данными формы передаётся скрипту на сервере с помощью &lt;strong&gt;Ajax&lt;/strong&gt; запроса &lt;strong&gt;post&lt;/strong&gt;. Вроде &amp;amp; всё просто &amp;amp; наглядно&lt;/p&gt;</description>
      <author>ffsdmad@jabber.ru ( Басманов ) </author>
    </item>
    <item>
      <link>http://breys.ru/blog/329.html</link>
      <guid>http://breys.ru/blog/329.html</guid>
      <title>Примеры Jquery, превью фотографий во всплывающем окне на событие onmouserover</title>
      <pubDate>Sun, 21 Jun 2009 00:19:49 +0400</pubDate>
      <description>&lt;p&gt;Потребовалось сделать просмотр слегка увеличенных превью картинок при наведении мыши в галерее, вот как выглядит результат&lt;/p&gt;
&lt;p&gt;&lt;a title="открыть: Примеры Jquery, превью картинок во всплывающем окне на событие onmouserover" rel="lightbox[roadtrip]" href="/upload/1245529241.35.png"&gt;&lt;img src="/upload/images/1245529241.35.png" alt="Примеры Jquery, превью картинок во всплывающем окне на событие onmouserover" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Решил задачу таким образом, с помощью &lt;strong&gt;jQuery&lt;/strong&gt;, прибиндил к ссылке событие, которое рисует в &lt;strong&gt;body&lt;/strong&gt; скрытый &lt;strong&gt;div&lt;/strong&gt;, клонирует в него ссылку с вложенной картинкой, вычисляя положение ссылки подстраивает новый div НАД маленькой картинкой, включает видимость и биндит функцию на mouseout которая удаляет динамически созданный div&lt;/p&gt;
&lt;p&gt;Галерея построена так:&lt;/p&gt;
&lt;pre&gt;&amp;lt;div id="preview"&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;div&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href="/1046.html#atop" title="Faretti Veneziani 705 F"&amp;gt;&amp;lt;img src="/fotos/thumb2/1242302304.15.jpg" alt="Faretti Veneziani 705 F"&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p &amp;gt;Faretti Veneziani 705 F&amp;lt;/p&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p &amp;gt;400 руб.&amp;lt;/p&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/div&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;div&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href="/1045.html#atop" title="Faretti Veneziani 700 F"&amp;gt;&amp;lt;img src="/fotos/thumb2/1242302093.69.jpg" alt="Faretti Veneziani 700 F"&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p &amp;gt;Faretti Veneziani 700 F&amp;lt;/p&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p &amp;gt;500 руб.&amp;lt;/p&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/div&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;div&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href="/1044.html#atop" title="Faretti Veneziani 707 F"&amp;gt;&amp;lt;img src="/fotos/thumb2/1242301917.06.jpg" alt="Faretti Veneziani 707 F"&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p &amp;gt;Faretti Veneziani 707 F&amp;lt;/p&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p &amp;gt;600 руб.&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt; &lt;/pre&gt;
&lt;p&gt;Настоящий размер картинок превью больше в два раза чем отображается, сделано это так:&lt;/p&gt;
&lt;pre&gt;#preview {}&lt;br /&gt;#preview div{width:177px;height:135px;float: left;background:#f9e7bf;border:2px solid #361f11;margin-right:40px;margin-bottom:30px;}&lt;br /&gt;#preview div a img{opacity:0.95;width:177px;height:90px; }&lt;br /&gt;#preview div p{color:#361f11;font-size:80%;margin: 0px;padding-left:5px;padding-right:5px;}&lt;br /&gt;#preview div .sr{text-align: right;color:#000;}&lt;br /&gt;#preview div .nm{overflow:hidden;height:20px;}&lt;/pre&gt;
&lt;p&gt;А теперь скрипт, который я вставил в body &lt;strong&gt;onload&lt;/strong&gt;="init_page()"&lt;/p&gt;
&lt;pre&gt;function show_thumb(th){&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("#thumb").&lt;strong&gt;remove&lt;/strong&gt;();&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("body").&lt;strong&gt;append&lt;/strong&gt;(&amp;#039&amp;lt;div id="thumb"&amp;gt;&amp;lt;/div&amp;gt;&amp;#039)&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("#thumb").hide()&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("#thumb").append($(th).&lt;strong&gt;clone&lt;/strong&gt;())&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("#thumb").&lt;strong&gt;css&lt;/strong&gt;("position","absolute")&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("#thumb").css("z-index","2")&lt;br /&gt;&amp;nbsp; &amp;nbsp; var p = $(th).&lt;strong&gt;offset&lt;/strong&gt;()&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("#thumb").css("left",p.left-20).css("top",p.top-90)&lt;br /&gt;&amp;nbsp; &amp;nbsp; $("#thumb").&lt;strong&gt;show&lt;/strong&gt;(150)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("#thumb").&lt;strong&gt;mouseout&lt;/strong&gt;(function(){$(this).remove();});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;function init_page(){&lt;br /&gt;&amp;nbsp; $("#preview a").&lt;strong&gt;mouseover&lt;/strong&gt;(function(){show_thumb(this)} )&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;Вроде бы простой и понятный скрипт, обращу внимание на иструкцию $("#thumb").remove();, она используется чтобы одновременно был создан только 1 блок thumb, иначе при быстром перемещении курсора будет полная задница, можно слегка оптимизировать код, добавив в CSS стиль для блока #thumb сократив тем самым код&lt;/p&gt;
&lt;p&gt;Проверил, работает в &lt;strong&gt;FF3&lt;/strong&gt;, &lt;strong&gt;Opera&lt;/strong&gt;, &lt;strong&gt;Chrome&lt;/strong&gt; и даже &lt;span style="text-decoration: line-through;"&gt;&lt;strong&gt;MSIE6&lt;/strong&gt;&lt;/span&gt; - везде работает без проблем.&lt;/p&gt;
&lt;p&gt;По мне так совсем бесполезная фишка, так как не для этого делается превью, но заказчик очень хотел. Ну что ж придётся ему заплатить за отключение этой штуки, когда она ему осточертеет&lt;/p&gt;
&lt;p&gt;Всё таки &lt;strong&gt;jQuery&lt;/strong&gt; отличная штука, она как bash для Linux или супер клей для сборки авиамоделей&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>ffsdmad@jabber.ru ( Басманов ) </author>
    </item>
    <item>
      <link>http://breys.ru/blog/306.html</link>
      <guid>http://breys.ru/blog/306.html</guid>
      <title>Примеры Jquery, как затемнить окно</title>
      <pubDate>Sun, 07 Jun 2009 19:38:49 +0400</pubDate>
      <description>&lt;p&gt;Потребовалось затемнить страницу под "всплывающим" дивом, при этом заблокировать все элементы на затемнённой странице. Вот что я навелосипедил&lt;/p&gt;
&lt;pre&gt;$("body").append(&amp;#039&amp;lt;div id="fade" &amp;gt;&amp;lt;/div&amp;gt;&amp;#039);&lt;br /&gt;body_height = document.height || document.documentElement.scrollHeight&lt;br /&gt;$("body #fade").css("height",body_height)&lt;br /&gt;$("body #fade").fadeTo(0, 0.4);&lt;br /&gt;&lt;br /&gt;function close_div(id){&lt;br /&gt;&amp;nbsp; $("#"+id).hide(100)&lt;br /&gt;&amp;nbsp; $("#fade").remove()&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;В первых 4 строчка, в body добавляет div чёрного цвета со стилем&lt;/p&gt;
&lt;pre&gt;body .fade {position: absolute;top:0px;top:0px;left:0px;width:100%;height:100%;background-color:#000;z-index:1;right: 0px; bottom:0}&lt;/pre&gt;
&lt;p&gt;затем вычисляется высота всего окна (актульно для оперы) и устанавливается для этого div для перекрытия всего body, а не только видимой части, затем у без задержки меняется прозрачность до 40%&lt;/p&gt;
&lt;p&gt;Для закрытия "всплывающих дивов используется функция close_div, следует отметить, что у всплывающих дивов должен быть z-index больше чем div[id="fade"]&lt;/p&gt;
&lt;p&gt;В осле пока не проверял, кстати, вот таблица соответствия свойства Height в различных браузерах&lt;/p&gt;
&lt;table border="0"&gt;
&lt;thead&gt; 
&lt;tr&gt;
&lt;th&gt;Browser&lt;/th&gt; &lt;th&gt;window.&lt;br /&gt;innerHeight&lt;/th&gt; &lt;th&gt;document.&lt;br /&gt;body.&lt;br /&gt;clientHeight&lt;/th&gt; &lt;th&gt;document.&lt;br /&gt;documentElement.&lt;br /&gt;clientHeight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt; 
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Opera 9.5+ strict&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Opera 9.5+ quirks&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Opera 7-9.2&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Opera 6&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Mozilla strict&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Mozilla quirks&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;KHTML&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Safari&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;iCab 3&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;iCab 2&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;IE 6+ strict&lt;/th&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;IE 5-7 quirks&lt;/th&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;IE 4&lt;/th&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;ICEbrowser&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Tkhtml Hv3&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Netscape 4&lt;/th&gt;
&lt;td&gt;window&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <author>ffsdmad@jabber.ru ( Басманов ) </author>
    </item>
    <item>
      <link>http://breys.ru/blog/265.html</link>
      <guid>http://breys.ru/blog/265.html</guid>
      <title>JQuery примеры использования</title>
      <pubDate>Sat, 09 May 2009 10:21:20 +0400</pubDate>
      <description>&lt;p&gt;Довольно часто мне и моим знакомым приходится повторно открывать для себя JQuery, что избавить себя от дежаву решил собрать тут самые показательные и сложные примеры использования JQuery&lt;/p&gt;
&lt;p&gt;Получение значение выбранной строки в списке Select из блока #adm&lt;/p&gt;
&lt;pre&gt;$("#adm select[name=&amp;#039table&amp;#039]").attr("value")&lt;/pre&gt;
&lt;p&gt;Получить текст из выбранной строки в списке Select из блока #adm&lt;/p&gt;
&lt;pre&gt;$("#adm select[name=&amp;#039table&amp;#039] option[selected]").attr("text")&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>ffsdmad@jabber.ru ( Басманов ) </author>
    </item>
  </channel>
</rss>

