<?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>gnarf.net</title>
	<atom:link href="http://gnarf.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://gnarf.net</link>
	<description>Searching for Patterns</description>
	<lastBuildDate>Mon, 09 Apr 2012 07:58:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>GitHub Pro Tip: Hide red lines in a diff</title>
		<link>http://gnarf.net/2012/04/09/github-pro-tip-hide-red-lines-in-a-diff/</link>
		<comments>http://gnarf.net/2012/04/09/github-pro-tip-hide-red-lines-in-a-diff/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 06:34:47 +0000</pubDate>
		<dc:creator>gnarf</dc:creator>
				<category><![CDATA[GitHub]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://gnarf.net/?p=68</guid>
		<description><![CDATA[I was looking at a diff on GitHub today and said to myself, &#8220;This would be so much easier to review if all the red lines were hidden.&#8221; So I pulled open the console and wrote a little jQuery: $("div.diff-view tr .gd").closest("tr").toggle().length; It can take a little time to run depending on the number of [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking at a diff on GitHub today and said to myself, &#8220;This would be so much easier to review if all the red lines were hidden.&#8221;</p>
<p>So I pulled open the console and wrote a little jQuery:</p>
<p><code>$("div.diff-view tr .gd").closest("tr").toggle().length;</code></p>
<p>It can take a little time to run depending on the number of lines it needs to hide.  The <code>.length</code> is there just to stop the console from showing you all of the elements it toggled.</p>
<p>I&#8217;ve given up on actually making an easy to install bookmarklet in my wordpress, something keeps converting all my links to <code>javascript:void(0)</code> and I don&#8217;t care enough to debug it.</p>
<p>If you want to bookmark it &#8211; here is the code for a bookmarklet:</p>
<p><code>javascript:$(&quot;div.diff-view tr .gd&quot;).closest(&quot;tr&quot;).toggle();false</code></p>
]]></content:encoded>
			<wfw:commentRss>http://gnarf.net/2012/04/09/github-pro-tip-hide-red-lines-in-a-diff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Conference 2011 Boston</title>
		<link>http://gnarf.net/2011/10/02/jquery-conference-2011-boston/</link>
		<comments>http://gnarf.net/2011/10/02/jquery-conference-2011-boston/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 20:49:21 +0000</pubDate>
		<dc:creator>gnarf</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://gnarf.net/?p=44</guid>
		<description><![CDATA[Wow, I can&#8217;t begin to describe how amazing this weekend was. It was my first time giving a presentation, and it seems a lot of people enjoyed it. The breakout session I hosted went over amazingly well, and filled the room with laughter for like 40 minutes straight. If you wanted to see my slides: [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, I can&#8217;t begin to describe how amazing this weekend was.  It was my first time giving a presentation, and it seems a lot of people enjoyed it.  The breakout session I hosted went over amazingly well, and filled the room with laughter for like 40 minutes straight.</p>
<p>If you wanted to see my slides: <a href="http://gnarf.net/special-fx">http://gnarf.net/special-fx</a> &#8211; the source for the slides and demos are available at <a href="https://github.com/gnarf37/special-fx">https://github.com/gnarf37/special-fx</a></p>
<p>I&#8217;ll probably add more to this post later, but yeah&#8230; Great weekend!  Thanks everyone who came to the conference!</p>
]]></content:encoded>
			<wfw:commentRss>http://gnarf.net/2011/10/02/jquery-conference-2011-boston/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery.ajaxQueue</title>
		<link>http://gnarf.net/2011/06/21/jquery-ajaxqueue/</link>
		<comments>http://gnarf.net/2011/06/21/jquery-ajaxqueue/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 00:10:31 +0000</pubDate>
		<dc:creator>gnarf</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://gnarf.net/?p=45</guid>
		<description><![CDATA[I&#8217;m starting to put together an example of using .queue(), jQuery.Deferred(), jQuery.ajax() together to create a queue for ajax requests. It is a front-end for jQuery.ajax() and takes the same options/arguments as any standard ajax call, just makes sure that only one ajax call can be running at a time. Take a look at the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting to put together an example of using <a href="http://api.jquery.com/queue"><code>.queue()</code></a>, <a href="http://api.jquery.com/jQuery.Deferred"><code>jQuery.Deferred()</code></a>, <a href="http://api.jquery.com/jQuery.ajax"><code>jQuery.ajax()</code></a> together to create a queue for ajax requests.</p>
<p>It is a front-end for <code>jQuery.ajax()</code> and takes the same options/arguments as any standard ajax call, just makes sure that only one ajax call can be running at a time.</p>
<p>Take a look at the <a href="https://gist.github.com/1039247">gist</a>.</p>
<div class="gistem"><div id="gist-1039247" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cm">/*</span></div><div class='line' id='LC2'><span class="cm">* jQuery.ajaxQueue - A queue for ajax requests</span></div><div class='line' id='LC3'><span class="cm">* </span></div><div class='line' id='LC4'><span class="cm">* (c) 2011 Corey Frang</span></div><div class='line' id='LC5'><span class="cm">* Dual licensed under the MIT and GPL licenses.</span></div><div class='line' id='LC6'><span class="cm">*</span></div><div class='line' id='LC7'><span class="cm">* Requires jQuery 1.5+</span></div><div class='line' id='LC8'><span class="cm">*/</span> </div><div class='line' id='LC9'><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">$</span><span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'><span class="c1">// jQuery on an empty object, we are going to use this as our Queue</span></div><div class='line' id='LC12'><span class="kd">var</span> <span class="nx">ajaxQueue</span> <span class="o">=</span> <span class="nx">$</span><span class="p">({});</span></div><div class='line' id='LC13'><br/></div><div class='line' id='LC14'><span class="nx">$</span><span class="p">.</span><span class="nx">ajaxQueue</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">ajaxOpts</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC15'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">jqXHR</span><span class="p">,</span></div><div class='line' id='LC16'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">dfd</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">Deferred</span><span class="p">(),</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">promise</span> <span class="o">=</span> <span class="nx">dfd</span><span class="p">.</span><span class="nx">promise</span><span class="p">();</span></div><div class='line' id='LC18'><br/></div><div class='line' id='LC19'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// queue our ajax request</span></div><div class='line' id='LC20'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">ajaxQueue</span><span class="p">.</span><span class="nx">queue</span><span class="p">(</span> <span class="nx">doRequest</span> <span class="p">);</span></div><div class='line' id='LC21'><br/></div><div class='line' id='LC22'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// add the abort method</span></div><div class='line' id='LC23'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">promise</span><span class="p">.</span><span class="nx">abort</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">statusText</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// proxy abort to the jqXHR if it is active</span></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">jqXHR</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="nx">jqXHR</span><span class="p">.</span><span class="nx">abort</span><span class="p">(</span> <span class="nx">statusText</span> <span class="p">);</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC29'><br/></div><div class='line' id='LC30'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// if there wasn&#39;t already a jqXHR we need to remove from queue</span></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">queue</span> <span class="o">=</span> <span class="nx">ajaxQueue</span><span class="p">.</span><span class="nx">queue</span><span class="p">(),</span></div><div class='line' id='LC32'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">index</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span> <span class="nx">doRequest</span><span class="p">,</span> <span class="nx">queue</span> <span class="p">);</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="p">(</span> <span class="nx">index</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">queue</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="nx">index</span><span class="p">,</span> <span class="mi">1</span> <span class="p">);</span></div><div class='line' id='LC36'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// and then reject the deferred</span></div><div class='line' id='LC39'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">dfd</span><span class="p">.</span><span class="nx">rejectWith</span><span class="p">(</span> <span class="nx">ajaxOpts</span><span class="p">.</span><span class="nx">context</span> <span class="o">||</span> <span class="nx">ajaxOpts</span><span class="p">,</span> <span class="p">[</span> <span class="nx">promise</span><span class="p">,</span> <span class="nx">statusText</span><span class="p">,</span> <span class="s2">&quot;&quot;</span> <span class="p">]</span> <span class="p">);</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="nx">promise</span><span class="p">;</span></div><div class='line' id='LC41'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">};</span></div><div class='line' id='LC42'><br/></div><div class='line' id='LC43'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c1">// run the actual query</span></div><div class='line' id='LC44'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">function</span> <span class="nx">doRequest</span><span class="p">(</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></div><div class='line' id='LC45'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">jqXHR</span> <span class="o">=</span> <span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">(</span> <span class="nx">ajaxOpts</span> <span class="p">)</span></div><div class='line' id='LC46'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">.</span><span class="nx">then</span><span class="p">(</span> <span class="nx">next</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span></div><div class='line' id='LC47'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">.</span><span class="nx">done</span><span class="p">(</span> <span class="nx">dfd</span><span class="p">.</span><span class="nx">resolve</span> <span class="p">)</span></div><div class='line' id='LC48'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">.</span><span class="nx">fail</span><span class="p">(</span> <span class="nx">dfd</span><span class="p">.</span><span class="nx">reject</span> <span class="p">);</span></div><div class='line' id='LC49'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC50'><br/></div><div class='line' id='LC51'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="nx">promise</span><span class="p">;</span></div><div class='line' id='LC52'><span class="p">};</span></div><div class='line' id='LC53'><br/></div><div class='line' id='LC54'><span class="p">})(</span><span class="nx">jQuery</span><span class="p">);</span></div><div class='line' id='LC55'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1039247/004fc7b5dae90bb39f9478fa236fa962cf956168/jquery.ajaxQueue.js" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1039247#file_jquery.ajax_queue.js" style="float:right;margin-right:10px;color:#666">jquery.ajaxQueue.js</a>
            <a href="https://gist.github.com/1039247">This Gist</a> is brought to you using <a href="http://en.bainternet.info/2011/simple-gist-embed"><small>Simple Gist Embed</small></a>.
          </div>
        </div>

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cm">/*</span></div><div class='line' id='LC2'><span class="cm"> * jQuery.ajaxQueue - A queue for ajax requests</span></div><div class='line' id='LC3'><span class="cm"> * </span></div><div class='line' id='LC4'><span class="cm"> * (c) 2011 Corey Frang</span></div><div class='line' id='LC5'><span class="cm"> * Dual licensed under the MIT and GPL licenses.</span></div><div class='line' id='LC6'><span class="cm"> *</span></div><div class='line' id='LC7'><span class="cm"> * Requires jQuery 1.5+</span></div><div class='line' id='LC8'><span class="cm"> */</span></div><div class='line' id='LC9'><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">){</span><span class="kd">var</span> <span class="nx">b</span><span class="o">=</span><span class="nx">a</span><span class="p">({});</span><span class="nx">a</span><span class="p">.</span><span class="nx">ajaxQueue</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">c</span><span class="p">){</span><span class="kd">function</span> <span class="nx">g</span><span class="p">(</span><span class="nx">b</span><span class="p">){</span><span class="nx">d</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">ajax</span><span class="p">(</span><span class="nx">c</span><span class="p">).</span><span class="nx">then</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span><span class="nx">b</span><span class="p">).</span><span class="nx">done</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">resolve</span><span class="p">).</span><span class="nx">fail</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">reject</span><span class="p">)}</span><span class="kd">var</span> <span class="nx">d</span><span class="p">,</span><span class="nx">e</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">Deferred</span><span class="p">(),</span><span class="nx">f</span><span class="o">=</span><span class="nx">e</span><span class="p">.</span><span class="nx">promise</span><span class="p">();</span><span class="nx">b</span><span class="p">.</span><span class="nx">queue</span><span class="p">(</span><span class="nx">g</span><span class="p">),</span><span class="nx">f</span><span class="p">.</span><span class="nx">abort</span><span class="o">=</span><span class="kd">function</span><span class="p">(</span><span class="nx">h</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span><span class="k">return</span> <span class="nx">d</span><span class="p">.</span><span class="nx">abort</span><span class="p">(</span><span class="nx">h</span><span class="p">);</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="nx">b</span><span class="p">.</span><span class="nx">queue</span><span class="p">(),</span><span class="nx">j</span><span class="o">=</span><span class="nx">a</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span><span class="nx">g</span><span class="p">,</span><span class="nx">i</span><span class="p">);</span><span class="nx">j</span><span class="o">&gt;-</span><span class="mi">1</span><span class="o">&amp;&amp;</span><span class="nx">i</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">j</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="nx">e</span><span class="p">.</span><span class="nx">rejectWith</span><span class="p">(</span><span class="nx">c</span><span class="p">.</span><span class="nx">context</span><span class="o">||</span><span class="nx">c</span><span class="p">,[</span><span class="nx">f</span><span class="p">,</span><span class="nx">h</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">]);</span><span class="k">return</span> <span class="nx">f</span><span class="p">};</span><span class="k">return</span> <span class="nx">f</span><span class="p">}})(</span><span class="nx">jQuery</span><span class="p">)</span></div><div class='line' id='LC10'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1039247/681493f224f237081328b2b916ab4249e60bedb8/jQuery.ajaxQueue.min.js" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1039247#file_j_query.ajax_queue.min.js" style="float:right;margin-right:10px;color:#666">jQuery.ajaxQueue.min.js</a>
            <a href="https://gist.github.com/1039247">This Gist</a> is brought to you using <a href="http://en.bainternet.info/2011/simple-gist-embed"><small>Simple Gist Embed</small></a>.
          </div>
        </div>
</div>
</div><style type="text/css">@import "http://gist.github.com/stylesheets/gist/embed.css"; .gistem .highlight {background: inherit; !important;}</style>
]]></content:encoded>
			<wfw:commentRss>http://gnarf.net/2011/06/21/jquery-ajaxqueue/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>jQuery Color v2 Beta 1 Released</title>
		<link>http://gnarf.net/2011/06/01/jquery-color-v2-beta-1-released/</link>
		<comments>http://gnarf.net/2011/06/01/jquery-color-v2-beta-1-released/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 15:35:22 +0000</pubDate>
		<dc:creator>gnarf</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery.color]]></category>

		<guid isPermaLink="false">http://gnarf.net/?p=41</guid>
		<description><![CDATA[Originally posted on the official jQuery blog Back in 2007 we released the jQuery Color Plugin, and it has been providing you with color-based animations ever since. We are now preparing a second version of this plugin which adds an API, RGBA, HSLA, and many other features. It is time for a beta! The repository [...]]]></description>
			<content:encoded><![CDATA[<h4>Originally posted on <a href="http://blog.jquery.com/2011/05/31/jquery-color-v2-beta-1-released/">the official jQuery blog</a></h4>
<p>Back in 2007 we released the jQuery Color Plugin, and it has been providing you with color-based animations ever since.  We are now preparing a second version of this plugin which adds an API, RGBA, HSLA, and many other features.  It is time for a beta!  The repository for this plugin can be found at <a href="https://github.com/jquery/jquery-color/">github.com/jquery/jquery-color</a>.  There are also <a href="http://code.jquery.com/color/jquery.color-2.0b1.js">uncompressed</a> and <a href="http://code.jquery.com/color/jquery.color-2.0b1.min.js">minified</a> versions available on code.jquery.com.</p>
<h2>New Feature Overview:</h2>
<h3>RGBA</h3>
<p>We now support RGBA color values.  In browsers that don’t support RGBA, the nearest backgroundColor to the element will be used to calculate a “blended” approximation of the color.  Although this isn’t “true” alpha, it will at least provide the illusion of alpha when dealing with solid background colors.  This is a screenshot of Opera 10, Chrome 10, Firefox 3.6, and IE 6 all running <a href="http://jsfiddle.net/gnarf/eEtuH/">this demonstration of alpha blending</a>:</p>
<p><img src="http://farm3.static.flickr.com/2158/5761909657_4343566d77_d.jpg" alt="Opera 10, Chrome 10, Firefox 3.6, and IE 6  demonstrating alpha blending" width="475" height="283" /></p>
<h3>HSLA</h3>
<p>We also now support using HSLA color values across all browsers, with the execption of alpha, which uses the same techniques described above.</p>
<h3>Easy-to-use API</h3>
<p>Instead of a simple group of private utility methods, <code>$.Color()</code> now creates a new Color object. The new Color object can be initialized in a few different ways: color names, hexidecimal color codes, css style rgba/hsla, an array of rgba values, or an object with the color properties. There are now helper methods for each color property, like <code>.red()</code> and <code>.hue()</code> that can get or set the particular value. Combined with helper functions like <code>.toRgbString()</code>, <code>.transition()</code> and <code>.is()</code>, <code>$.Color</code> can now handle whatever color needs you might have. Refer to the README on <a href="https://github.com/jquery/jquery-color">github.com/jquery/jquery-color</a> for an overview of all the new functions available.  No longer is jQuery.Color just providing you with animation of simple colors, you can now use its API to do complex color calculations and animations!</p>
<h4>Quick Examples:</h4>
<pre>// Create a red Color object:
var red = $.Color( 'rgba(255,0,0,1)' ); // using a css string

// Create a red Color object, then make orange:
var orange = $.Color( '#FF0000' ).green( 153 );

// Get the color halfway between red and blue:
var between = $.Color([ 255, 0, 0 ]).transition( "blue", 0.5 );</pre>
<h3>Animating Partial Colors</h3>
<p>We have added support for only defining one or two properties of a color object so that you can animate using a partial color like <a href="http://jsfiddle.net/gnarf/v5V2W/">this</a>:</p>
<pre>// desaturate the background of this element
elem.animate({
    backgroundColor: $.Color({ saturation: 0 })
}, 1000);</pre>
<h2>Reporting Problems / Requesting Features:</h2>
<p>If you find any problems with the new color plugin, or would like to request a feature, please create a <a href="https://github.com/jquery/jquery-color/issues">github issue</a>.</p>
<p>Also, we’d love to see and showcase some excellent uses of the new <code>$.Color</code> beta, so please be sure to share it with us in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnarf.net/2011/06/01/jquery-color-v2-beta-1-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Messing with jQuery.color</title>
		<link>http://gnarf.net/2011/05/14/messing-with-jquery-color/</link>
		<comments>http://gnarf.net/2011/05/14/messing-with-jquery-color/#comments</comments>
		<pubDate>Sat, 14 May 2011 07:22:35 +0000</pubDate>
		<dc:creator>gnarf</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://gnarf.net/?p=35</guid>
		<description><![CDATA[So, I&#8217;ve been putting a lot of time into crafting a new API for jQuery&#8217;s color animate plugin lately, and thought I would share this quick demo usage example I just put together. Note that this actually does some clever backgroundColor alpha blending by looking for the elements nearest parent with a backgroundColor to fake [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve been putting a lot of time into crafting a <a href="http://wiki.jqueryui.com/w/page/12137744/Color-Library">new API</a> for <a href="https://github.com/jquery/jquery-color/tree/api-2">jQuery&#8217;s color animate plugin</a> lately, and thought I would share this <a href="http://jsfiddle.net/gnarf/Ltg85/1">quick demo</a> usage example I just put together.</p>
<div>
<iframe style="width: 100%; height: 400px" src="http://jsfiddle.net/gnarf/Ltg85/1/embedded/result,html,js,css"></iframe>
<p>Note that this actually does some clever backgroundColor alpha blending by looking for the elements nearest parent with a backgroundColor to fake support for RGBA in older browsers.</p>
<p>I&#8217;m pretty interested in seeing what other (possibly more legitimate) uses people might have for a Color library.</p>
<p><strong>Note: </strong>This color plugin is all in a development branch &#8211; you can use it, and please do, but the API is still subject to change&#8230;</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://gnarf.net/2011/05/14/messing-with-jquery-color/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The uses of jQuery .queue() and .dequeue()</title>
		<link>http://gnarf.net/2010/09/30/the-uses-of-jquery-queue-and-dequeue/</link>
		<comments>http://gnarf.net/2010/09/30/the-uses-of-jquery-queue-and-dequeue/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 21:45:31 +0000</pubDate>
		<dc:creator>gnarf</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[queues]]></category>

		<guid isPermaLink="false">http://gnarf.net/?p=10</guid>
		<description><![CDATA[This was originally posted on stack overflow.  Please go vote for it there if you are a registered user. Queues in jQuery are used for animations. You can use them for any purpose you like. They are an array of functions stored on a per element basis, using jQuery.data(). The are First-In-First-Out (FIFO). You can [...]]]></description>
			<content:encoded><![CDATA[<h3>This was originally <a href="http://stackoverflow.com/questions/1058158/can-somebody-explain-jquery-queue-to-me/3314877#3314877">posted on stack overflow</a>.  Please go vote for it there if you are a registered user.</h3>
<p><a href="http://en.wikipedia.org/wiki/Queue_%28data_structure%29">Queues</a> in jQuery are used for animations.  You can use them for any purpose you like.  They are an <strong>array of functions</strong> stored on a per element basis, using <a href="http://api.jquery.com/jQuery.data"><code>jQuery.data()</code></a>.  The are First-In-First-Out (FIFO).  You can add a function to the queue by calling <a href="http://api.jquery.com/queue"><code>.queue()</code></a>, and you remove (by calling) the functions using <a href="http://api.jquery.com/dequeue"><code>.dequeue()</code></a>.</p>
<p>To understand the internal jQuery queue functions, <a href="http://github.com/jquery/jquery/blob/master/src/queue.js">reading the source</a> and looking at examples helps me out tremendously.  One of the best examples of a queue function I&#8217;ve seen is <a href="http://api.jquery.com/delay"><code>.delay()</code></a>:</p>
<pre class="prettyprint"><code><span class="pln">$</span><span class="pun">.</span><span class="pln">fn</span><span class="pun">.</span><span class="pln">delay </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">(</span><span class="pln"> time</span><span class="pun">,</span><span class="pln"> type </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  time </span><span class="pun">=</span><span class="pln"> jQuery</span><span class="pun">.</span><span class="pln">fx </span><span class="pun">?</span><span class="pln"> jQuery</span><span class="pun">.</span><span class="pln">fx</span><span class="pun">.</span><span class="pln">speeds</span><span class="pun">[</span><span class="pln">time</span><span class="pun">]</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> time </span><span class="pun">:</span><span class="pln"> time</span><span class="pun">;</span><span class="pln">
  type </span><span class="pun">=</span><span class="pln"> type </span><span class="pun">||</span><span class="pln"> </span><span class="str">"fx"</span><span class="pun">;</span><span class="pln">

  </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">queue</span><span class="pun">(</span><span class="pln"> type</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> elem </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">;</span><span class="pln">
    setTimeout</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      jQuery</span><span class="pun">.</span><span class="pln">dequeue</span><span class="pun">(</span><span class="pln"> elem</span><span class="pun">,</span><span class="pln"> type </span><span class="pun">);</span><span class="pln">
    </span><span class="pun">},</span><span class="pln"> time </span><span class="pun">);</span><span class="pln">
  </span><span class="pun">});</span><span class="pln">
</span><span class="pun">};</span><span class="pln">
</span></code></pre>
<h2>The default queue &#8211; <code>fx</code></h2>
<p>The default queue in jQuery is <code>fx</code>.  The default queue has some special properties that are not shared with other queues.</p>
<ol>
<li><strong>Auto Start:</strong> When calling <code>$(elem).queue(function(){});</code> the <code>fx</code> queue will automatically <code>dequeue</code> the next function and run it if the queue hasn&#8217;t started.</li>
<li><strong>&#8216;inprogress&#8217; sentinel:</strong> Whenever you <code>dequeue()</code> a function from the <code>fx</code> queue, it will <code>unshift()</code> (push into the first location of the array) the string <code>"inprogress"</code> &#8211; which flags that the queue is currently being run.</li>
<li><strong>It&#8217;s the default!</strong> The <code>fx</code> queue is used by <code>.animate()</code> and all functions that call it by default.</li>
</ol>
<p><strong>NOTE:</strong> If you are using a custom queue, you must manually <code>.dequeue()</code> the functions, they will not auto start!</p>
<h2>Retrieving/Setting the queue</h2>
<p>You can retrieve a reference to a jQuery queue by calling <code>.queue()</code> without a function argument.  You can use the method if you want to see how many items are in the queue.  You can use <code>push</code>, <code>pop</code>, <code>unshift</code>, <code>shift</code> to manipulate the queue in place.  You can replace the entire queue by passing an array to the <code>.queue()</code> function.</p>
<p><strong>Quick Examples:</strong></p>
<pre class="prettyprint"><code><span class="com">// lets assume $elem is a jQuery object that points to some element we are animating.</span><span class="pln">
</span><span class="kwd">var</span><span class="pln"> queue </span><span class="pun">=</span><span class="pln"> $elem</span><span class="pun">.</span><span class="pln">queue</span><span class="pun">();</span><span class="pln">
</span><span class="com">// remove the last function from the animation queue.</span><span class="pln">
</span><span class="kwd">var</span><span class="pln"> lastFunc </span><span class="pun">=</span><span class="pln"> queue</span><span class="pun">.</span><span class="pln">pop</span><span class="pun">();</span><span class="pln">
</span><span class="com">// insert it at the beginning:    </span><span class="pln">
queue</span><span class="pun">.</span><span class="pln">unshift</span><span class="pun">(</span><span class="pln">lastFunc</span><span class="pun">);</span><span class="pln">
</span><span class="com">// replace queue with the first three items in the queue</span><span class="pln">
$elem</span><span class="pun">.</span><span class="pln">queue</span><span class="pun">(</span><span class="pln">queue</span><span class="pun">.</span><span class="pln">slice</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">3</span><span class="pun">));</span><span class="pln">
</span></code></pre>
<h2>An animation (<code>fx</code>) queue example:</h2>
<p><a rel="nofollow" href="http://jsfiddle.net/evRG5/3/embedded/result">Run example on jsFiddle</a></p>
<pre class="prettyprint"><code><span class="pln">$</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="com">// lets do something with google maps:</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> $map </span><span class="pun">=</span><span class="pln"> $</span><span class="pun">(</span><span class="str">"#map_canvas"</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> myLatlng </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> google</span><span class="pun">.</span><span class="pln">maps</span><span class="pun">.</span><span class="typ">LatLng</span><span class="pun">(-</span><span class="lit">34.397</span><span class="pun">,</span><span class="pln"> </span><span class="lit">150.644</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> myOptions </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">zoom</span><span class="pun">:</span><span class="pln"> </span><span class="lit">8</span><span class="pun">,</span><span class="pln"> center</span><span class="pun">:</span><span class="pln"> myLatlng</span><span class="pun">,</span><span class="pln"> mapTypeId</span><span class="pun">:</span><span class="pln"> google</span><span class="pun">.</span><span class="pln">maps</span><span class="pun">.</span><span class="typ">MapTypeId</span><span class="pun">.</span><span class="pln">ROADMAP</span><span class="pun">};</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> geocoder </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> google</span><span class="pun">.</span><span class="pln">maps</span><span class="pun">.</span><span class="typ">Geocoder</span><span class="pun">();</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> map </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> google</span><span class="pun">.</span><span class="pln">maps</span><span class="pun">.</span><span class="typ">Map</span><span class="pun">(</span><span class="pln">$map</span><span class="pun">[</span><span class="lit">0</span><span class="pun">],</span><span class="pln"> myOptions</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> resized </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="com">// simple animation callback - let maps know we resized</span><span class="pln">
        google</span><span class="pun">.</span><span class="pln">maps</span><span class="pun">.</span><span class="kwd">event</span><span class="pun">.</span><span class="pln">trigger</span><span class="pun">(</span><span class="pln">map</span><span class="pun">,</span><span class="pln"> </span><span class="str">'resize'</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">};</span><span class="pln">

    </span><span class="com">// wait 2 seconds</span><span class="pln">
    $map</span><span class="pun">.</span><span class="pln">delay</span><span class="pun">(</span><span class="lit">2000</span><span class="pun">);</span><span class="pln">
    </span><span class="com">// resize the div:</span><span class="pln">
    $map</span><span class="pun">.</span><span class="pln">animate</span><span class="pun">({</span><span class="pln">
        width</span><span class="pun">:</span><span class="pln"> </span><span class="lit">250</span><span class="pun">,</span><span class="pln">
        height</span><span class="pun">:</span><span class="pln"> </span><span class="lit">250</span><span class="pun">,</span><span class="pln">
        marginLeft</span><span class="pun">:</span><span class="pln"> </span><span class="lit">250</span><span class="pun">,</span><span class="pln">
        marginTop</span><span class="pun">:</span><span class="lit">250</span><span class="pln">
    </span><span class="pun">},</span><span class="pln"> resized</span><span class="pun">);</span><span class="pln">
    </span><span class="com">// geocode something</span><span class="pln">
    $map</span><span class="pun">.</span><span class="pln">queue</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">(</span><span class="kwd">next</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="com">// find stackoverflow's whois address:</span><span class="pln">
      geocoder</span><span class="pun">.</span><span class="pln">geocode</span><span class="pun">({</span><span class="str">'address'</span><span class="pun">:</span><span class="pln"> </span><span class="str">'55 Broadway New York NY 10006'</span><span class="pun">},</span><span class="pln">handleResponse</span><span class="pun">);</span><span class="pln">

      </span><span class="kwd">function</span><span class="pln"> handleResponse</span><span class="pun">(</span><span class="pln">results</span><span class="pun">,</span><span class="pln"> status</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
          </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">status </span><span class="pun">==</span><span class="pln"> google</span><span class="pun">.</span><span class="pln">maps</span><span class="pun">.</span><span class="typ">GeocoderStatus</span><span class="pun">.</span><span class="pln">OK</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
              </span><span class="kwd">var</span><span class="pln"> location </span><span class="pun">=</span><span class="pln"> results</span><span class="pun">[</span><span class="lit">0</span><span class="pun">].</span><span class="pln">geometry</span><span class="pun">.</span><span class="pln">location</span><span class="pun">;</span><span class="pln">
              map</span><span class="pun">.</span><span class="pln">setZoom</span><span class="pun">(</span><span class="lit">13</span><span class="pun">);</span><span class="pln">
              map</span><span class="pun">.</span><span class="pln">setCenter</span><span class="pun">(</span><span class="pln">location</span><span class="pun">);</span><span class="pln">
              </span><span class="kwd">new</span><span class="pln"> google</span><span class="pun">.</span><span class="pln">maps</span><span class="pun">.</span><span class="typ">Marker</span><span class="pun">({</span><span class="pln"> map</span><span class="pun">:</span><span class="pln"> map</span><span class="pun">,</span><span class="pln"> position</span><span class="pun">:</span><span class="pln"> location </span><span class="pun">});</span><span class="pln">
          </span><span class="pun">}</span><span class="pln">
          </span><span class="com">// geocoder result returned, continue with animations:</span><span class="pln">
          </span><span class="kwd">next</span><span class="pun">();</span><span class="pln">
      </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">});</span><span class="pln">
    </span><span class="com">// after we find stack overflow, wait 3 more seconds</span><span class="pln">
    $map</span><span class="pun">.</span><span class="pln">delay</span><span class="pun">(</span><span class="lit">3000</span><span class="pun">);</span><span class="pln">
    </span><span class="com">// and resize the map again</span><span class="pln">
    $map</span><span class="pun">.</span><span class="pln">animate</span><span class="pun">({</span><span class="pln">
        width</span><span class="pun">:</span><span class="pln"> </span><span class="lit">500</span><span class="pun">,</span><span class="pln">
        height</span><span class="pun">:</span><span class="pln"> </span><span class="lit">500</span><span class="pun">,</span><span class="pln">
        marginLeft</span><span class="pun">:</span><span class="lit">0</span><span class="pun">,</span><span class="pln">
        marginTop</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
    </span><span class="pun">},</span><span class="pln"> resized</span><span class="pun">);</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span></code></pre>
<h2>Queueing something like Ajax Calls:</h2>
<p><a href="http://stackoverflow.com/questions/3034874/sequencing-ajax-requests/3035268#3035268">Originally posted here</a> &#8211; <a rel="nofollow" href="http://www.jsfiddle.net/Fwcbj/4/embedded/result">run jsFiddle demo</a></p>
<pre class="prettyprint"><code><span class="pln">  </span><span class="com">// jQuery on an empty object, we are going to use this as our Queue</span><span class="pln">
  </span><span class="kwd">var</span><span class="pln"> ajaxQueue </span><span class="pun">=</span><span class="pln"> $</span><span class="pun">({});</span><span class="pln">

  $</span><span class="pun">.</span><span class="pln">ajaxQueue </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">(</span><span class="pln">ajaxOpts</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="com">// hold the original complete function</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> oldComplete </span><span class="pun">=</span><span class="pln"> ajaxOpts</span><span class="pun">.</span><span class="pln">complete</span><span class="pun">;</span><span class="pln">

    </span><span class="com">// queue our ajax request</span><span class="pln">
    ajaxQueue</span><span class="pun">.</span><span class="pln">queue</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">(</span><span class="kwd">next</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

      </span><span class="com">// create a complete callback to fire the next event in the queue</span><span class="pln">
      ajaxOpts</span><span class="pun">.</span><span class="pln">complete </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="com">// fire the original complete if it was there</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">oldComplete</span><span class="pun">)</span><span class="pln"> oldComplete</span><span class="pun">.</span><span class="pln">apply</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">,</span><span class="pln"> arguments</span><span class="pun">);</span><span class="pln">

        </span><span class="kwd">next</span><span class="pun">();</span><span class="pln"> </span><span class="com">// run the next query in the queue</span><span class="pln">
      </span><span class="pun">};</span><span class="pln">

      </span><span class="com">// run the query</span><span class="pln">
      $</span><span class="pun">.</span><span class="pln">ajax</span><span class="pun">(</span><span class="pln">ajaxOpts</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">});</span><span class="pln">
  </span><span class="pun">};</span><span class="pln">

</span><span class="com">// get each item we want to copy</span><span class="pln">
$</span><span class="pun">(</span><span class="str">"#items li"</span><span class="pun">).</span><span class="pln">each</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">(</span><span class="pln">idx</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

    </span><span class="com">// queue up an ajax request</span><span class="pln">
    $</span><span class="pun">.</span><span class="pln">ajaxQueue</span><span class="pun">({</span><span class="pln">
        url</span><span class="pun">:</span><span class="pln"> </span><span class="str">'/ajax_html_echo/'</span><span class="pun">,</span><span class="pln">
        data</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">html </span><span class="pun">:</span><span class="pln"> </span><span class="str">"["</span><span class="pun">+</span><span class="pln">idx</span><span class="pun">+</span><span class="str">"] "</span><span class="pun">+</span><span class="pln">$</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">).</span><span class="pln">html</span><span class="pun">()},</span><span class="pln">
        type</span><span class="pun">:</span><span class="pln"> </span><span class="str">'POST'</span><span class="pun">,</span><span class="pln">
        success</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">(</span><span class="pln">data</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="com">// Write to #output</span><span class="pln">
            $</span><span class="pun">(</span><span class="str">"#output"</span><span class="pun">).</span><span class="pln">append</span><span class="pun">(</span><span class="pln">$</span><span class="pun">(</span><span class="str">"&lt;li&gt;"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> html</span><span class="pun">:</span><span class="pln"> data </span><span class="pun">}));</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">});</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span></code></pre>
<h2>Another custom queue example</h2>
<p><a rel="nofollow" href="http://jsfiddle.net/mkBJk/embedded/result">Run example on jsFiddle</a></p>
<pre class="prettyprint"><code><span class="kwd">var</span><span class="pln"> theQueue </span><span class="pun">=</span><span class="pln"> $</span><span class="pun">({});</span><span class="pln"> </span><span class="com">// jQuery on an empty object - a perfect queue holder</span><span class="pln">

$</span><span class="pun">.</span><span class="pln">each</span><span class="pun">([</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">,</span><span class="lit">3</span><span class="pun">],</span><span class="kwd">function</span><span class="pun">(</span><span class="pln">i</span><span class="pun">,</span><span class="pln"> num</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  </span><span class="com">// lets add some really simple functions to a queue:</span><span class="pln">
  theQueue</span><span class="pun">.</span><span class="pln">queue</span><span class="pun">(</span><span class="str">'alerts'</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">(</span><span class="kwd">next</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="com">// show something, and if they hit "yes", run the next function.</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">confirm</span><span class="pun">(</span><span class="str">'index:'</span><span class="pun">+</span><span class="pln">i</span><span class="pun">+</span><span class="str">' = '</span><span class="pun">+</span><span class="pln">num</span><span class="pun">+</span><span class="str">'\nRun the next function?'</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="kwd">next</span><span class="pun">();</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
  </span><span class="pun">});</span><span class="pln">
</span><span class="pun">});</span><span class="pln">

</span><span class="com">// create a button to run the queue:</span><span class="pln">
$</span><span class="pun">(</span><span class="str">"&lt;button&gt;"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  text</span><span class="pun">:</span><span class="pln"> </span><span class="str">'Run Queue'</span><span class="pun">,</span><span class="pln">
  click</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    theQueue</span><span class="pun">.</span><span class="pln">dequeue</span><span class="pun">(</span><span class="str">'alerts'</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}).</span><span class="pln">appendTo</span><span class="pun">(</span><span class="str">'body'</span><span class="pun">);</span><span class="pln">

</span><span class="com">// create a button to show the length:</span><span class="pln">
$</span><span class="pun">(</span><span class="str">"&lt;button&gt;"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  text</span><span class="pun">:</span><span class="pln"> </span><span class="str">'Show Length'</span><span class="pun">,</span><span class="pln">
  click</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    alert</span><span class="pun">(</span><span class="pln">theQueue</span><span class="pun">.</span><span class="pln">queue</span><span class="pun">(</span><span class="str">'alerts'</span><span class="pun">).</span><span class="pln">length</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}).</span><span class="pln">appendTo</span><span class="pun">(</span><span class="str">'body'</span><span class="pun">);</span><span class="pln">
</span></code></pre>
]]></content:encoded>
			<wfw:commentRss>http://gnarf.net/2010/09/30/the-uses-of-jquery-queue-and-dequeue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

