title: hashchange event possible bug
body: <p>I think I've found a really unusual bug in Javascript but I'm not sure.</p>
  <p>So I have three child divs absolutely positioned inside a parent div (that is position relative).</p>
  <p>The three child divs are 1200px wide and are <strong>side by side</strong> inside the parent.</p>
  <p>So the first div is left:0px the second is left:1200px and the third is left:2400px.</p>
  <p>Now my goal is to click and the divs shift. (The parent div is acting as a 1200px viewport)</p>
  <pre><code>$(&quot;#blogNav&quot;).click(function() 
  {
      $(&quot;#blog&quot;).css( &quot;left&quot;, &quot;0px&quot;);
      $(&quot;#software&quot;).css( &quot;left&quot;, &quot;1200px&quot;);
      $(&quot;#about&quot;).css( &quot;left&quot;,  &quot;2400px&quot;);
  });
  
  
  $(&quot;#softwareNav&quot;).click(function() 
  {
      $(&quot;#blog&quot;).css( &quot;left&quot;, &quot;-1200px&quot;);
      $(&quot;#software&quot;).css( &quot;left&quot;, &quot;0px&quot;);
      $(&quot;#about&quot;).css( &quot;left&quot;,  &quot;1200px&quot;);
  
  });
  
  $(&quot;#aboutNav&quot;).click(function() 
  {
      $(&quot;#blog&quot;).css( &quot;left&quot;, &quot;-2400px&quot;);
      $(&quot;#software&quot;).css( &quot;left&quot;, &quot;-1200px&quot;);
      $(&quot;#about&quot;).css( &quot;left&quot;,  &quot;0px&quot;);
  
  });
  </code></pre>
  <p>THIS WORKS PERFECTLY.</p>
  <p>Now here's the issue.</p>
  <p>When I do the exact same thing with a hashchange event:</p>
  <pre><code>window.onhashchange = function()
  {
      if(window.location.hash==&quot;#blog&quot;)
      {
              $(&quot;#blog&quot;).css( &quot;left&quot;, &quot;0px&quot;);
              $(&quot;#software&quot;).css( &quot;left&quot;, &quot;1200px&quot;);
              $(&quot;#about&quot;).css( &quot;left&quot;,  &quot;2400px&quot;);
  
      }
      if(window.location.hash==&quot;#software&quot;)
      {
              $(&quot;#blog&quot;).css( &quot;left&quot;, &quot;-1200px&quot;);
              $(&quot;#software&quot;).css( &quot;left&quot;, &quot;0px&quot;);
              $(&quot;#about&quot;).css( &quot;left&quot;,  &quot;1200px&quot;);
  
      }
      if(window.location.hash==&quot;#about&quot;)
      {
              $(&quot;#blog&quot;).css( &quot;left&quot;, &quot;-2400px&quot;);
              $(&quot;#software&quot;).css( &quot;left&quot;, &quot;-1200px&quot;);
              $(&quot;#about&quot;).css( &quot;left&quot;,  &quot;0px&quot;);
  }
  };
  </code></pre>
  <p>THE POSITIONING IS ALL MESSED UP.</p>
  <p>The 0px location of the parent div is shifted so that the 0px is no longer the left border of the parent div. Its at some negative margin.</p>
  <p>The only thing that has change is the hashevent.</p>
  <p>I hope I'm explaining this well enough.</p>
  <p>I'll try to upload some examples to my site soon.</p>
  <p>It's really strange how the exact same logic works with a click event but not with a hashchange event.</p>