title: setTimeout not working only for the first time of the event causing it
body: <p>In code below, i want to set <code>var hasFocus=False;</code> after 500ms on blur of mentioned <code>&lt;textarea&gt;</code> and <code>&lt;input&gt;</code>. This code immediately turns <code>hasFocus=False</code> without waiting for 500ms for the first time. Afterwards, it works as expected.<br>
  I'm unable to understand why it is not running as expected for the first time only!</p>
  
  <pre><code>$(function(){
      var hasFocus=false;
  
      $("textarea[name='question1'], input[name^=q1_option]").blur(function(event){
          setTimeout(function(){
              hasFocus=false;
          },500);
      }).focus(function(){
         hasFocus=true;
      });
  
      $(document).on('click',function(e){
          console.log("focus :" +hasFocus);
          if(hasFocus)
          {
             alert("Working!!"); //Now this does not come up for the first time!
          } 
      })
  });
  </code></pre>