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
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.
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.
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
Può me come dire? Mi dispiace, non lo so. – think123
@ think123 - Ho aggiunto una dimostrazione di lavoro alla fine della mia risposta. – jfriend00
Buona risposta. Allo stesso modo, ho trovato che 'unselectable =" on "' sembra funzionare, almeno per i pulsanti. – think123