Ernesto, miembro de este staff, nos ha hecho el favor de escribir este escrito porque controla muy bien este tema.
Solución:
Hay no es necesario renovar el foco!
Asegúrese de manejar el evento mousedown (en lugar del evento click). El evento mousedown se activará antes de que se pierda el foco de otro elemento.
En tus ratón hacia abajo controlador de eventos, debe hacerlo para evitar el comportamiento predeterminado del evento.
e.preventDefault(); // on your mousedown event
Demostración de JS-Fiddle
No puede evitar que el enfoque se mueva a un elemento enfocable y aún permitir que el clic del mouse tenga su comportamiento normal (como click
el botón). Si hace clic en un elemento que admita el enfoque, como un botón, obtendrá el enfoque del teclado.
Es posible volver a poner el foco en un elemento mediante programación si se hace correctamente. Si se hace mal, puede arruinar la usabilidad de una página.
Demostración: JSFiddle