Why do jQuery show() parameters not delay before calling the `complete` function?
<p>The <a href="http://api.jquery.com/show/" rel="nofollow">jQuery API documentation for <code>show()</code></a> states that as of jQuery 1.4.3, one can call <code>.show()</code> like so:</p>

<pre><code>.show( [duration ] [, easing ] [, complete ] )
</code></pre>

<p>With the arguments being:</p>

<blockquote>
  <ul>
  <li><code>duration</code> (default: 400): A string or number determining how long the animation will run.</li>
  <li><code>easing</code> (default: swing): A string indicating which easing function to use for the transition.</li>
  <li><code>complete</code>: A function to call once the animation is complete.</li>
  </ul>
</blockquote>

<p>I don't need easing, so I just call this version:</p>

<pre><code>.show( [duration ] [, complete ] )
</code></pre>

<p>I have one function which is supposed to show a div, wait 5 seconds, then fade out over 500ms.</p>

<p>I have tried this:</p>

<pre><code>  $('#some_div').show( {
      duration: 5000,
      complete: function() { fadeOutHelper(500); }
  } );
</code></pre>

<p>And this:</p>

<pre><code>$('#some_div').show(5000, function() { fadeOutHelper(500); } );
</code></pre>

<p>And in neither case will <code>show()</code> actually wait 5000ms before calling the helper function.</p>

<p>I found a work-around on StackOverflow using <code>setTimeout()</code>: <a href="http://stackoverflow.com/questions/3428766/jquery-show-for-5-seconds-the-hide">jQuery show for 5 seconds the hide</a></p>

<pre><code>$('#some_div').show();
setTimeout(function() { fadeOutHelper(500); }, 5000);
</code></pre>

<p>Although I have a work-around, I would like to understand how I am misunderstanding some very simple function arguments in the jQuery <code>show()</code> docs.</p>
