2010-04-02 13 views

Respuesta

27

El método .focus() en un elemento jQuery-wrapped se vinculará al evento onfocus si se pasa una función como el primer parámetro, o activa controladores de eventos adjuntos sin parámetro.

No estoy seguro de por qué está tratando de hacer lo que está tratando de hacer, pero si está tratando de desenfocar el elemento actualmente activo, no importa qué elemento sea, puede usar:

if ("activeElement" in document) 
    document.activeElement.blur(); 

No se recomienda, sin embargo, ya que al hacerlo se restablecerá el orden de tabulación y potencialmente molestará a los usuarios que navegan por el teclado.

+2

Mejor ponga un check in como 'if ('activeElement' en el documento)' primero, ya que no es compatible con todos los navegadores. – bobince

+0

@bobince: lo agregó como medida de precaución. 'activeElement' es compatible con las últimas versiones de Firefox, Opera, WebKit e IEs 6 a 8 y también es parte de la especificación de HTML5, por lo que esperamos que sea ampliamente compatible de todos modos. –

1

$().method() dispara los oyentes asociados con ese método. Si necesita invocar funciones en elementos dom, indexe el objeto jQuery.

decir

$(document)[0].focus() 

Aunque por qué no acaba de utilizar document.focus es probablemente una pregunta vale la pena responder.

Cuestiones relacionadas