2012-08-28 11 views
7

Ho una textarea in cui sto inserendo il contenuto nella posizione del punto di inserimento (grazie a Tim Down's answer). Inserisce il contenuto quando l'utente preme un pulsante. Ma sembra che quando si preme il pulsante, si perde l'attenzione sulla textarea. Come faccio a mantenere l'attenzione lì, anche se la posizione del cursore è la stessa? Stavo pensando di utilizzare evt.preventDefault() con .focusout(). Se ciò aiuta.Come rendere l'elemento non perdere la messa a fuoco quando si preme il pulsante?

risposta

8

Non è possibile interrompere lo stato attivo spostandosi su un elemento di messa a fuoco e consentire al clic del mouse di avere il suo comportamento normale (ad esempio click il pulsante). Se fai clic su un elemento che supporta la messa a fuoco, come un pulsante, otterrà il focus della tastiera.

È possibile mettere a fuoco di programmazione su un elemento se eseguito correttamente. Se fatto male, può rovinare l'usabilità di una pagina.

Demo: http://jsfiddle.net/jfriend00/Ddffh/

+0

Può me come dire? Mi dispiace, non lo so. – think123

+0

@ think123 - Ho aggiunto una dimostrazione di lavoro alla fine della mia risposta. – jfriend00

+0

Buona risposta. Allo stesso modo, ho trovato che 'unselectable =" on "' sembra funzionare, almeno per i pulsanti. – think123

-1

Si può facilmente farlo applicando attenzione di nuovo alla zona di testo a livello di codice come la funzione del pulsante scatto è finita. In questo modo puoi riacquisire il focus insieme all'evento click ogni volta.

1

Assicurati di gestire l'evento "salvadanaio". Si spara prima che il fuoco di un altro elemento venga perso.

Nel tuo gestore eventi, è necessario restituire false, per impedire la propagazione degli eventi e il comportamento predefinito. (Funziona anche per gli eventi di tocco)

return false; // on your mousedown event

http://jsfiddle.net/Ddffh/143/

Problemi correlati