<?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>l'indicible blog &#187; Javascript</title>
	<atom:link href="http://www.lindicible.com/blog/category/dev/js/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lindicible.com/blog</link>
	<description>&#60;!--:en--&#62;the details of the inexpressible&#60;!--:--&#62;&#60;!--:fr--&#62;les détails de l'ineffable&#60;!--:--&#62;</description>
	<lastBuildDate>Thu, 01 Jul 2010 14:20:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comment détecter quand la souris quitte la fenêtre du navigateur en Javascript</title>
		<link>http://www.lindicible.com/blog/2009/09/29/comment-detecter-quand-la-souris-quitte-la-fenetre-du-navigateur-en-javascript/</link>
		<comments>http://www.lindicible.com/blog/2009/09/29/comment-detecter-quand-la-souris-quitte-la-fenetre-du-navigateur-en-javascript/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 15:57:13 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tutoriaux]]></category>

		<guid isPermaLink="false">http://www.lindicible.com/blog/?p=421</guid>
		<description><![CDATA[Javascript est un langage très utile pour beaucoup de choses de nos jours.
Malheureusement, chaque navigateur l&#8217;implémente à sa façon, et évidemment ils ne proposent pas la même gestion des évènements !
Prenons un exemple : vous venez de faire un div que l&#8217;on peut déplacer à volonté avec la souris. On clique, le déplacement commence&#8230; on [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript est un langage très utile pour beaucoup de choses de nos jours.<br />
Malheureusement, chaque navigateur l&#8217;implémente à sa façon, et évidemment ils ne proposent pas la même gestion des évènements !</p>
<p>Prenons un exemple : vous venez de faire un div que l&#8217;on peut déplacer à volonté avec la souris. On clique, le déplacement commence&#8230; on relâche, le déplacement s&#8217;arrête. Mais voila, si on relâche en dehors de la fenêtre du navigateur, aucun événement n&#8217;est déclenché, et on continue à déplacer notre div indéfiniment !</p>
<p>Le meilleur moyen d&#8217;éviter ça est de stopper le déplacement dès l&#8217;instant où l&#8217;on quitte la fenêtre du navigateur. Seulement voila : javascript ne déclenche aucun événement lorsque c&#8217;est le cas. Il faut tricher&#8230;</p>
<p>On commence par se dire que si l&#8217;on cesse de survoler l&#8217;objet que l&#8217;on déplace, on arrête le déplacement&#8230; Et l&#8217;on se rend vite compte que ce n&#8217;est pas pratique du tout ! En effet, la souris va presque toujours bouger plus vite que la div et le déplacement cessera instantanément, sauf si l&#8217;on bouge au ralenti.</p>
<p>Pour éviter ça, on peut chercher à déterminer vers quel élément la souris à quitté la div, et n&#8217;arrêter le déplacement que si ce n&#8217;est pas un élément inclus dans la balise html.<br />
Facile&#8230; en théorie. Mais tous les navigateurs n&#8217;utilisent pas les mêmes attributs de l&#8217;événement, et évidemment IE va encore nous poser problème !</p>
<p>Sans plus d&#8217;introduction, voici un morceau de code jQuery (&laquo;&nbsp;code less do more&nbsp;&raquo;) qui vous aidera grandement à résoudre ce problème :</p>
<pre>
$('div#dragged').bind('mouseleave.dragged',function(e) {
	var ev = e || window.event;
	if(ev.relatedTarget){
		if(ev.relatedTarget == $('html').get(0)){
			stopDrag();
		}
	} else {
	// IE
		if(!ev.toElement){
			stopDrag();
		} else if(ev.toElement.tagName == "HTML"){
			stopDrag();
		}
	}
})
</pre>
<h3>Maintenant, les explications :</h3>
<pre>$('div#dragged').bind('mouseleave.dragged',function(e) {</pre>
<p>On associe une fonction à l&#8217;événement &#8216;mouseleave&#8217; sur la div déplaçable.<br />
Notez au passage que jQuery nous permet d&#8217;associer un nom à cette fonction (ici : &#8216;.dragged&#8217;), ce qui est très pratique pour gérer ensuite les événement nominativement, surtout dans le cas ou plusieurs événement du même type sont associés à cet objet.</p>
<pre>	var ev = e || window.event;</pre>
<p>On récupère ensuite l&#8217;événement déclenché. Firefox et les browsers respectueux des standards le trouveront en paramètre de la fonction (ici : &#8216;e&#8217;), pour Internet Explorer il faudra aller le chercher dans window.event.<br />
Le double pipe (&#8216;||&#8217;) permet d&#8217;attribuer à la variable &#8216;ev&#8217; la valeur de &#8216;e&#8217; si elle existe, et la valeur de &#8216;window.event&#8217; si ce n&#8217;est pas le cas.</p>
<pre>	if(ev.relatedTarget){
		if(ev.relatedTarget == $('html').get(0)){
			stopDrag();
		}</pre>
<p>Pour les navigateurs standards, l&#8217;événement contient une propriété &#8216;relatedTarget&#8217;.<br />
Si elle existe, on est dans le cas d&#8217;un navigateur standard, sinon on est probablement sous IE.</p>
<p>Cette propriété retourne l&#8217;élément &#8216;html&#8217; quand on quitte la div en sortant du navigateur.<br />
On utilise ici une syntaxe jQuery pour comparer le contenu de cette propriété avec le contenu html (&#8216;get(0)&#8217; sur l&#8217;objet jQuery) de la balise &#8216;html&#8217;. S&#8217;ils sont identiques, on peut arrêter le déplacement.</p>
<pre>	} else {
	// IE</pre>
<p>Si la propriété &#8216;relatedTarget&#8217; n&#8217;existe pas, on est alors dans le cas d&#8217;IE. Deux cas se présentent alors :</p>
<pre>		if(!ev.toElement){
			stopDrag();</pre>
<p>Pour certaines versions d&#8217;IE, la propriété &#8216;toElement&#8217; de l&#8217;événement est indéfinie. C&#8217;est un critère suffisant pour arrêter le déplacement.</p>
<pre>		} else if(ev.toElement.tagName == "HTML"){
			stopDrag();
		}
	}
})</pre>
<p>Pour d&#8217;autres versions d&#8217;IE, la propriété &#8216;toElement&#8217; existe. On devra dans ce cas vérifier que la propriété &#8216;tagName&#8217; de &#8216;toElement&#8217; est bien &#8216;HTML&#8217;. Si c&#8217;est le cas, on arrête le déplacement.</p>
<p>Voila, j&#8217;espère que ces quelques explications pourront vous aider, il n&#8217;est pas toujours évident de trouver sur internet les ressources nécessaires pour arriver à faire cette chose pourtant si basique !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindicible.com/blog/2009/09/29/comment-detecter-quand-la-souris-quitte-la-fenetre-du-navigateur-en-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Désactiver une option de select avec jQuery</title>
		<link>http://www.lindicible.com/blog/2009/04/08/disable-a-select-option-in-ie-with-jquerydesactiver-une-option-de-select-avec-jquery/</link>
		<comments>http://www.lindicible.com/blog/2009/04/08/disable-a-select-option-in-ie-with-jquerydesactiver-une-option-de-select-avec-jquery/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 18:29:58 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.lindicible.com/blog/?p=99</guid>
		<description><![CDATA[Que ferions nous si nous n’avions pas Internet Explorer pour nous aider à nous torturer les méninges ? On risquerait de s’ennuyer !
Il semblerait que dans la version 7 de ce navigateur cher aux développeurs masochistes, on n’aie toujours pas la possibilité pourtant bien utile de désactiver une des options d’un ’select’.
Heureusement, javascript (boosté par [...]]]></description>
			<content:encoded><![CDATA[<p>Que ferions nous si nous n’avions pas Internet Explorer pour nous aider à nous torturer les méninges ? On risquerait de s’ennuyer !</p>
<p>Il semblerait que dans la version 7 de ce navigateur cher aux développeurs masochistes, on n’aie toujours pas la possibilité pourtant bien utile de désactiver une des options d’un ’select’.</p>
<p>Heureusement, javascript (boosté par jQuery) permet de régler pas mal des lacunes du navigateur que l’on adore détester.</p>
<p>Voici un petit script trouvé sur internet qui peut vous dépanner si vous êtes confronté à ce problème :</p>
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span>document<span style="color: #009900;">)</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
  <span style="color: #006600; font-style: italic;">// Disabled options fix for Internet Explorer</span>
  $<span style="color: #009900;">(</span><span style="color: #3366cc;">'select'</span><span style="color: #009900;">)</span>.<span style="color: #660066;">each</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">rejectDisabled</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">options</span><span style="color: #009900;">[</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">selectedIndex</span><span style="color: #009900;">]</span>.<span style="color: #660066;">disabled</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">lastSelectedIndex</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
          <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">selectedIndex</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">lastSelectedIndex</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">}</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">{</span>
          <span style="color: #003366; font-weight: bold;">var</span> first_enabled <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">children</span><span style="color: #009900;">(</span><span style="color: #3366cc;">'option:not(:disabled)'</span><span style="color: #009900;">)</span>.<span style="color: #660066;">get</span><span style="color: #009900;">(</span><span style="color: #cc0000;">0</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
          <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">selectedIndex</span> <span style="color: #339933;">=</span> first_enabled <span style="color: #339933;">?</span> first_enabled.<span style="color: #660066;">index</span> <span style="color: #339933;">:</span> <span style="color: #cc0000;">0</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">}</span>
      <span style="color: #009900;">}</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">{</span>
        <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">lastSelectedIndex</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">selectedIndex</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">}</span>
    <span style="color: #009900;">}</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">rejectDisabled</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">lastSelectedIndex</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">selectedIndex</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">children</span><span style="color: #009900;">(</span><span style="color: #3366cc;">'option[disabled]'</span><span style="color: #009900;">)</span>.<span style="color: #660066;">each</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
      $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">css</span><span style="color: #009900;">(</span><span style="color: #3366cc;">'color'</span><span style="color: #339933;">,</span> <span style="color: #3366cc;">'#CCC'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">change</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
      <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">rejectDisabled</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;
</span></pre>
<p>Merci jQuery <img src='http://www.lindicible.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindicible.com/blog/2009/04/08/disable-a-select-option-in-ie-with-jquerydesactiver-une-option-de-select-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pickwhip jQuery</title>
		<link>http://www.lindicible.com/blog/2008/10/28/pickwhip-jquery/</link>
		<comments>http://www.lindicible.com/blog/2008/10/28/pickwhip-jquery/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 20:02:01 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[after effects]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pickwhip]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.lindicible.com/blog/?p=7</guid>
		<description><![CDATA[Dans le monde informatique comme ailleurs, il y a de bonnes idées qui se répandent moins bien que d&#8217;autres. Le &#8216;pickwhip&#8217; utilisé dans l&#8217;application Adobe After Effects est de celles-là. C&#8217;est un outil qui permet en toute simplicité de lier un élément à un autre. Cela peut servir  par exemple à lier la couleur [...]]]></description>
			<content:encoded><![CDATA[<p>Dans le monde informatique comme ailleurs, il y a de bonnes idées qui se répandent moins bien que d&#8217;autres. Le &#8216;pickwhip&#8217; utilisé dans l&#8217;application Adobe After Effects est de celles-là. C&#8217;est un outil qui permet en toute simplicité de lier un élément à un autre. Cela peut servir  par exemple à lier la couleur d&#8217;un élément graphique à la rotation d&#8217;un autre&#8230; ou un projet à une catégorie. Et c&#8217;est très pratique !</p>
<p>N&#8217;ayant pas trouvé d&#8217;équivalent à implémenter dans une administration web, j&#8217;ai décidé d&#8217;en écrire un moi-même. J&#8217;ai donc utilisé la commodité de jQuery pour écrire un plug-in javascript simulant le fonctionnement du pickwhip.</p>
<h3>Démo</h3>
<p>Basiquement, on attribue à un élément source une liste d&#8217;éléments cible auxquels il a le droit de se lier. Lorsque l&#8217;on cliquera sur cet élément source, on activera un pickwhip qui réagira différemment au survol d&#8217;éléments cible, d&#8217;éléments cible déjà lié, ou d&#8217;éléments non-cible, et qui bien sûr effectuera le lien demandé.</p>
<p>Une démonstration valant mieux qu&#8217;un long discours, vous pouvez <a rel="external" href="http://blog.lindicible.com/wp-content/_custom/the_whip/">tester le pickwhip</a>.</p>
<h3>En pratique</h3>
<p>Pour utiliser le pickwhip, vous devrez tout d&#8217;abord avoir chargé <a rel="external" href="http://docs.jquery.com/Downloading_jQuery#Current_Release">jquery.js</a> et <a rel="external" href="http://blog.lindicible.com/wp-content/_custom/the_whip/jquery.pickwhip.js">jquery.pickwhip.js</a>, de préférence dans la balise &lt;head&gt; de votre page.</p>
<pre>&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.pickwhip.js"&gt; &lt;/script&gt;</pre>
<p>Il faut ensuite initialiser le pickwhip en lui indiquant une url où trouver ses images :</p>
<pre>$(document).ready(function(){
	$.pickWhip.init({
		imageDir: 'whipImg/'
	});
});</pre>
<p>Si vous souhaitez déplacer les images du pickwhip, vous pouvez remplacer &#8216;whipImg/&#8217; par leur emplacement actuel, sinon vous pouvez juste lancer $.pickWhip.init() sans paramètre.</p>
<p>Il ne reste plus qu&#8217;à définir les cibles et les options de chaque pickwhip, comme dans l&#8217;exemple ci-dessous :</p>
<pre>$('#src1').pickWhip('.dropzone, .dropzone2',{
	unlinkedHoverClass	: 'whipHover1',
	linkedHoverClass	: 'whipHoverLinked1',
	linkList		: Array( $('#drop2') ),
	showLinks		: true,
	linkedClass		: 'whipLinked1',
	unlinkedClass		: 'whipUnlinked1',
	callback		: function(source, target){
		alert("The link between the source " + source.attr('id') + " and the target " + target.attr('id') + " has been updated.";
	}
});</pre>
<p>Ce code attribue un pickWhip à l&#8217;élément dont l&#8217;id est &#8217;src1&#8242;.</p>
<p>Le premier paramètre passé à la méthode pickWhip() est une String à faire interpréter par le sélecteur jQuery.</p>
<p>Ici, on demande à ce que les éléments de classe &#8216;dropzone&#8217; et de classe &#8216;dropzone2&#8242; soient réactifs à ce pickwhip.</p>
<p>Le second paramètre est une liste d&#8217;options au format json&#8230;</p>
<h3>Options disponibles :</h3>
<ul>
<li><strong>linkedHoverClass</strong> : classe css à donner à un élément cible <em>déjà lié</em> à cette source lors de son survol.<br />
Type : String<br />
par défaut: linkedWhipHoverTarget</li>
<li><strong>unlinkedHoverClass</strong> : classe css à donner à un élément cible <em>non lié</em> à cette source lors de son survol.<br />
Type : String<br />
Par défaut: unlinkedWhipHoverTarget</li>
<li><strong>linkedClass</strong> : classe css à donner à un élément cible <em>déjà lié</em> à cette source lorsque showLink est actif.<br />
Type : String<br />
Par défaut : linkedWhipTarget</li>
<li><strong>unlinkedClass</strong>s : classe css à donner à un élément cible  <em>non lié</em> à cette source lorsque showLink est actif.<br />
Type : String<br />
Par défaut : unlinkedWhipTarget</li>
<li><strong>showLinks</strong> : appliquer les classes linkedClass/unlinkedClass aux cibles lorsque l&#8217;utilisateur active le pickwhip.<br />
Type : Boolean<br />
Par défaut : true</li>
<li><strong>linkList</strong> : liste d&#8217;éléments jQuery déjà associés à cette source ou de tableaux associatifs (source, cible) .<br />
Type : Array( [jQuery Object target], [Array( jQuery Object source, jQuery Object target)], [...] )</li>
<li><strong>callback</strong> : fonction à executer après l&#8217;association<br />
Type : Function<br />
Note : cette fonction peut prendre 2 paramètres, qui seront respectivement la source et la cible liés.</li>
</ul>
<p>L&#8217;option linkList s&#8217;avérera très utile pour initialiser l&#8217;état actuel des associations. Vous pouvez lui fournir des cibles pour ce pickwhip, la source du pickwhip leur sera associée. Mais vous pouvez aussi fournir un tableau d&#8217;association de type Array(source, cible), car ce n&#8217;est pas forcément à la source du pickwhip elle même que vous souhaitez associer la cible. Par exemple, vous voulez peut-être associer la cible à l&#8217;élément parent du pickwhip&#8230;ou exploiter plus directement les associations faites dans votre base de données !</p>
<p>Pour connaitre à tout moment l&#8217;état des associations, vous pouvez interroger la liste globale $.pickWhip.allLinks comme dans l&#8217;exemple ci-dessous :</p>
<pre>function showLinks(){
	var links = '&lt;p&gt;Current associations are :&lt;\/p&gt;
&lt;ul&gt;';
	for (var i=0; i&lt;$.pickWhip.allLinks.length; i++) {
		for (var j=0; j&lt;$.pickWhip.allLinks[i].length; j++) {
			links += '&lt;li&gt;source : '+$.pickWhip.allLinks[i][j][0].html()+' _ dest : '+$.pickWhip.allLinks[i][j][1].html()+'&lt;\/li&gt;';
		}
	}
	links +='&lt;\/ul&gt;';
	$('#links').html(links);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lindicible.com/blog/2008/10/28/pickwhip-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Préchargement d&#8217;images avec jQuery</title>
		<link>http://www.lindicible.com/blog/2008/05/23/prechargement-dimages-avec-jquery/</link>
		<comments>http://www.lindicible.com/blog/2008/05/23/prechargement-dimages-avec-jquery/#comments</comments>
		<pubDate>Fri, 23 May 2008 19:54:01 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tutoriaux]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[préchargement]]></category>
		<category><![CDATA[preload]]></category>
		<category><![CDATA[preloading]]></category>

		<guid isPermaLink="false">http://www.lindicible.com/blog/?p=5</guid>
		<description><![CDATA[Pour ceux qui ne connaîtraient pas encore, jquery est une librairie javascript très puissante qui permet de faire beaucoup de choses en peu de lignes de code. Elle porte fièrement sa devise de &#171;&#160;code less, do more&#160;&#187;, qui est tout à fait appropriée !
Par ailleurs, jquery permet de développer des plugins de manière assez simple, [...]]]></description>
			<content:encoded><![CDATA[<p>Pour ceux qui ne connaîtraient pas encore, jquery est une librairie javascript très puissante qui permet de faire beaucoup de choses en peu de lignes de code. Elle porte fièrement sa devise de &laquo;&nbsp;code less, do more&nbsp;&raquo;, qui est tout à fait appropriée !</p>
<p>Par ailleurs, jquery permet de développer des plugins de manière assez simple, afin de rajouter des fonctionnalités au module de base. Mais nous y reviendrons une autre fois&#8230;</p>
<p>Le sujet du jour est le préchargement d&#8217;images, un concept relativement basique et régulièrement utile.</p>
<p>Voici une méthode simple pour l&#8217;effectuer :</p>
<pre>$.preloadImages = function(arguments)
{
    for (var i = 0; i &lt; arguments.length; i++) {
        $('&lt;img/&gt;').attr('src', arguments[i]);
    }
}

var imagesToPreload = Array(\
    'image1.gif',\
    '/repertoire/des/images/image2.gif',\
    'http://www.example.com/repertoire/image3.gif');

$.preloadImages(imagesToPreload);</pre>
<p>Notes:</p>
<ul>
<li>$ est un raccourci pour l&#8217;objet de base jQuery. En cas de conflit (par exemple avec Prototype, une autre lib assez répandue), il est possible de le redéfinir.</li>
<li>imagesToPreload contient une liste (Array) d&#8217;images sous forme de texte (String).</li>
<li>Les \ en fin de lignes permettent de continuer à la ligne du dessous en rendant le retour à la ligne invisible au parser javascript, et donc d&#8217;avoir une liste d&#8217;images plus agréable à lire si l&#8217;on aligne verticalement le début du nom de chaque image.</li>
<li>La fonction preloadImages() prend chacun des arguments donnés par le tableau (Array) et crée à la volée une balise html &lt;img&gt; puis donne à l&#8217;attribut &laquo;&nbsp;src&nbsp;&raquo; de cette balise le nom de l&#8217;image. Du coup, l&#8217;image est appelée et chargée dans le cache du navigateur.</li>
<li>Comme on n&#8217;insère pas cet objet dans le DOM, rien n&#8217;est affiché.</li>
</ul>
<p>Et voila. C&#8217;est simple et efficace, à l&#8217;image de jQuery !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lindicible.com/blog/2008/05/23/prechargement-dimages-avec-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
