¿Por qué no se llama al controlador de eventos “focusin”?

¿Por qué en el siguiente código no se llama al controlador de eventos focusin ?

HTML:

 
Click Here

JS:

 $(function() { $('input').live('focusin', function() { $('#output').html('focusin'); // Why this not happens ? }); $('#button').click(function() { $('#button').hide(); build_inputs(); }); }); function build_inputs() { var html = " \ 
\ "; $('#wrapper').append(html); $('#wrapper').fadeIn(500, function() { $('input:first').focus(); }); }

CSS:

 #wrapper { display: none; background: #aaa; width: 170px; padding: 20px; } 

Por alguna razón, no estoy seguro de por qué, .focus() no desencadena el evento de focusin .

Puede replicar este comportamiento cambiando la línea de enfoque para agregar .trigger('focusin') .

entonces tu código fadeIn se convierte en:

 $('#wrapper').fadeIn(500, function() { $('input:first').focus().trigger('focusin'); }); 

Puedes probarlo aquí: http://jsfiddle.net/yt7Jd/

EDITAR: Como mencionó Jason, también puede llamar al método .focusin() lugar del .trigger('focusin') .

EDIT 2: Parece ser un error en 1.4.3. Se ha registrado con el equipo de jQuery para solucionarlo: http://bugs.jquery.com/ticket/7340