<?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>Clearideaz &#187; plugins</title>
	<atom:link href="http://clearideaz.com/tag/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://clearideaz.com</link>
	<description>webdesigner et intégrateur XHTML / CSS</description>
	<lastBuildDate>Mon, 20 Jun 2011 14:00:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>jQuery.eventManager, un plugin de gestion d&#8217;évènements</title>
		<link>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/</link>
		<comments>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:06:07 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[évènements]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=400</guid>
		<description><![CDATA[La méthode $.delegate de jQuery fonctionne sur le principe de la délégation d&#8217;évènements. La délégation permet notamment de pouvoir ajouter de nouveaux éléments dans le DOM dynamiquement (via Ajax par exemple) sans pour autant leur ré-attacher d&#8217;évènements préalablement défini. Elle assure également de meilleures performances. Sur la plupart des projets, je m&#8217;amusais à déléguer des [...]]]></description>
			<content:encoded><![CDATA[<p>La méthode <code>$.delegate</code> de jQuery fonctionne sur le principe de la délégation d&#8217;évènements. La délégation permet notamment de pouvoir ajouter de nouveaux éléments dans le DOM dynamiquement (via Ajax par exemple) sans pour autant leur ré-attacher d&#8217;évènements préalablement défini. Elle assure également de meilleures performances.</p>
<p>Sur la plupart des projets, je m&#8217;amusais à déléguer des évènements à des objets globaux. C&#8217;est ensuite au moment de l&#8217;appel à l&#8217;évènement que je filtrais le type d&#8217;action à effectuer. C&#8217;est un exercice plutôt fastidieux&#8230;</p>
<p>J&#8217;ai donc décidé de créer un plugin jQuery permettant de faciliter la gestion d&#8217;évènement via delegate. Il suffit pour cela de créer un objet recensant les objets globaux, les évènements attachés, le filtre, puis l&#8217;action a effectuer.</p>

<p>Voici un exemple d&#8217;objet :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> eventList <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #3366CC;">'div'</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #3366CC;">'mouseover'</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #3366CC;">'.sidebar'</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'over'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
     <span style="color: #003366; font-weight: bold;">default</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'red'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #3366CC;">'mouseout'</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>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'transparent'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>En clair, je délègue des évènements à un ou plusieurs objets de type <code>div</code>. Je lui attribue un évènement de type <code>mouseover</code>. Par défaut, au passage de la souris sur cette <code>div</code>, le fond de cet objet sera rouge. Si la div possède la classe <code>.sidebar</code>, alors je lui ajoute une classe <code>.over</code>. Enfin, lorsque je quitte un objet de type <code>div</code>, je lui affecte un fond transparent.</p>
<p>Une fois cet objet créé, il ne reste plus qu&#8217;à l&#8217;insérer dans un appel au plugin eventManager :</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;">'#wrapper'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">eventManager</span><span style="color: #009900;">&#40;</span>eventList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dans cet appel, seules les div placées dans un objet ayant pour ID #wrapper seront affectés par les évènements à déléguer.</p>
<p>Je vous propose d&#8217;accèder à la démo pour vous faire une idée des possibilités offertes. Vous pourrez ensuite, si vous le souhaitez, télécharger le plugin sur <a href="http://github.com/clearideaz/jQuery.eventManager">mon espace Github</a>.</p>
<p><em>Édité le 19 juillet : <strong>Nouveauté sur le plugin,</strong> le code a été nettoyé, on peut se passer de &#8216;default&#8217; lorsqu&#8217;il n&#8217;y a pas de sélecteur filtre. Autre nouveauté, on peut désormais utiliser &laquo;&nbsp;this&nbsp;&raquo; au lieu de &laquo;&nbsp;elem&nbsp;&raquo; dans les fonctions de l&#8217;objet contenant les évènements. Merci beaucoup à <a title="Sunfox.org, le site qui te donne des tâches de rousseur" href="http://sunfox.org">Sunny</a> pour son aide !</em></p>
<ul class="demo">
<li><a title="Visualiser la démo du plugin jQuery.eventManager" href="http://clearideaz.com/demo/jQuery.eventManager/">Accéder à la démonstration</a></li>
<li><a title="Télecharger le plugin jQuery.eventManager sur Github" href="http://github.com/clearideaz/jQuery.eventManager/downloads">Télécharger le plugin</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Viva jQuery et mon livre de chevet !</title>
		<link>http://clearideaz.com/2008/02/viva-jquery-et-mon-livre-de-chevet/</link>
		<comments>http://clearideaz.com/2008/02/viva-jquery-et-mon-livre-de-chevet/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 08:56:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[effets]]></category>
		<category><![CDATA[eyrolles]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[livre]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=13</guid>
		<description><![CDATA[Plus je m&#8217;intéresse à jQuery et plus je me rend compte des possibilités étendues de ce framework javascript. Je suis parfois bluffé par les effets visuels qu&#8217;il peut générer. Sur Dragon Interactive, on a presque l&#8217;impression de visiter un site à base d&#8217;animations flash mais il n&#8217;en est rien. C&#8217;est l&#8217;utilisation judicieuse des fonctions fadeIn() [...]]]></description>
			<content:encoded><![CDATA[<p>Plus je m&#8217;intéresse à jQuery et plus je me rend compte des possibilités étendues de ce framework javascript. Je suis parfois bluffé par les effets visuels qu&#8217;il peut générer. Sur <a title="Se rendre sur le site de Dragon Interactive" href="http://dragoninteractive.com">Dragon Interactive</a>, on a presque l&#8217;impression de visiter un site à base d&#8217;animations flash mais il n&#8217;en est rien. C&#8217;est l&#8217;utilisation judicieuse des fonctions fadeIn() et fadeOut() qui donne cette sensation. <a title="Voir la liste officielle de plugins jQuery" href="http://plugins.jquery.com/">Bon nombre de plugins</a> viennent ajouter à ce framework d&#8217;autres fonctionnalités de la plus intéressante à la plus farfelue. Je suis récemment tombé sur <a title="Se rendre sur la page dédiée au plugin jCycle" href="http://www.malsup.com/jquery/cycle/">le plugin jCycle</a> qui permet des effets de transitions d&#8217;images assez intéressants.</p>
<p>De part l&#8217;intéret grandissant pour cette librairie javascript, j&#8217;ai décidé de casser ma tirelire pour m&#8217;acheter le livre <em>Premières applications Web 2.0 avec Ajax et PHP</em> de Jean-Marie Defrance et paru aux éditions Eyrolles. Ce n&#8217;est pas un ouvrage qui traite véritablement de la bibliothèque jQuery mais il consacre tout de même deux grands chapitres qui permettent d&#8217;apprivoiser la bête. A lire donc de toute urgence <img src='http://clearideaz.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Pour en savoir plus :</strong></p>
<ul>
<li><a title="Se rendre sur le site web du framework jQuery" href="http://www.jquery.com">Le site officiel de jQuery</a></li>
<li><a title="Se rendre sur le site web Visual jQuery" href="http://visualjquery.com/">Présentation des fonctions essentielles de jQuery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/02/viva-jquery-et-mon-livre-de-chevet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

