2010-04-02 11 views

risposta

27

Il metodo .focus() su un elemento jQuery viene associato all'evento onfocus se una funzione viene passata come primo parametro o se si attivano i gestori eventi associati senza alcun parametro.

Non sono sicuro del motivo per cui stai cercando di fare ciò che stai cercando di fare, ma se stai cercando di sfocare l'elemento attualmente attivo, non importa quale elemento sia, puoi usare:

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

Questo non è consigliato, in quanto in tal modo si ripristinerà l'ordine di tabulazione e potenzialmente infastidire gli utenti di navigazione della tastiera.

+2

Meglio mettere un check in come 'if ('activeElement' nel documento)' prima, poiché non è supportato in tutti i browser. – bobince

+0

@bobince: aggiunto come misura precauzionale. 'activeElement' è supportato nelle ultime versioni di Firefox, Opera, WebKit e IE da 6 a 8 ed è anche parte delle specifiche HTML5, quindi si spera che sarà ampiamente supportato comunque. –

1

$().method() attiva gli ascoltatori associati a tale metodo. Se è necessario chiamare funzioni su elementi dom, indicizzare l'oggetto jQuery.

cioè

$(document)[0].focus() 

Anche perché non sarebbe solo utilizzare document.focus è probabilmente una domanda vale la pena di rispondere.

Problemi correlati