That usage sounds reasonable to me. :)

As to blur "having a callback"... it does. You pass in a function
which is the "callback" for when blur is triggered. For example you
could write:

function blurCallback() { alert('blurring'); }
$('input').blur( blurCallback );

Or:

$('input').blur( function() { alert('blurring'); } );

Both result in the same thing happening. Though perhaps I
misunderstood your question.

Karl Rudd

On 5/25/07, Glen Lipka <[EMAIL PROTECTED]> wrote:
A closure!  Actually, I don't even know what the heck a closure is.  I mean,
I understand intellectually, but ask me to write one or explain it back and
I will fail.
But apparently this is one.

The reason to use this technique (and I agree, it should be used wisely) is
when you have a field called "choose username" and when you blur from it, it
erases your choice, and gives a little red error saying, "Sorry that
username is taken, try again." and focuses back on the field.  I have a case
for no value which lets blur happen normally.

Man, programming is hard.  Thank god I have jQuery so I can avoid it most of
the time.

Feature request for jQuery:
Blur should have a callback function.  Like slideUp.
Why doesn't everything have a callback?

Glen





On 5/24/07, Karl Rudd <[EMAIL PROTECTED]> wrote:
>
> If you're wanting the text field to retain focus no matter what then
> you should probably reconsider. It's not a very good thing from a UI
> design perspective. It is possible but it pretty much "locks up" the
> entire browser.
>
> Having given you the "don't shoot yourself or the user in the foot"
> warning, here's code to do it:
>
> $('input#MyTextInput').blur( function() {
>     var input = this;
>     setTimeout( function() {
>         input.focus();
>     }, 0);
> });
>
> Tested and working in IE and Firefox.
>
> Karl Rudd
>
> On 5/25/07, Glen Lipka <[EMAIL PROTECTED] > wrote:
> > Code sample:
> > $("input#MyTextInput").blur(
> >   function() {
> >     setTimeout("$('#MyTextInput').focus()",0);
> >    }
> > );
> >
> >  That works in FF.
> > ----------------------
> > $("input#MyTextInput").blur(
> >    function() {
> >      $('#MyTextInput').focus();
> >    }
> >  );
> >
> > That does not work in FF.
> > ---------------------
> >
> > Trying to re-focus back on an input after a blur event.
> > IE works in more circumstances, but FF does not.
> >
> > Is there an easier way?
> >
> > Glen
> >
>


Reply via email to