Newsgroup: it.comp.lang.javascript
Titolo: gestione Eventi

lo so. sto usando un oggetto inflazionato in questo forum, ma
purtroppo la ricerca non mi ha dato risultati adatti al mio problema.
 
rabbia. sto testando questo codice su firefox:
 
<div id='prova' onmouseover='creaEvento(this)'>prova</div>
 
...
function azione(evt) {
  alert('ricevuto');
}
 
function creaEvento(evt) {
  evt.addEventListener('keypressed',azione,false)
}
 
così non funziona, perché si attiva la ricerca automatica. se uso come
evento 'click', invece, funziona.
ho provato a premettere evt.preventDefault() ma mi risponde che la
funzione non esiste.
ho provato a scrivere 'onKeyPressed', 'keyPressed' e cento altre
combinazioni ma cilecca.
 
come si dovrebbe fare?

 come si dovrebbe fare?
 
Onestamente non mi è neanche ben chiaro cos'è che vuoi fare, intendo
dire la "big picture", ma spero che quel che ti ho detto ti sia stato
d'aiuto.
 


grazie ancora. purtroppo neanche così funziona. almeno però mi dai
certezze sul 'keypress'.
 
quando premo un tasto si aziona la "ricerca rapida". prima ho detto
automatica, ma intendevo quella funzionalità del browser con cui viene
evidenziata la stringa digitata (quella funzione che talvolta si
attiva con "Ctrl F"). se disattivo in preferenze l'opzione "Cerca nel
testo quando si digita qualcosa" l'effetto sparisce, ma il meccanismo
continua a fare cilecca. non rilevo errori in console.
 
ho scoperto che un workaround sarebbe sostituire l'elemento div con un
elemento input.
ma così non mi piace. e in ogni caso, secondo me, in html l'attributo
onkeypress dovrebbe essere applicabile a tutti gli elementi per i
quali funziona onclick.

 quali funziona onclick.
 
L'onclick non ha bisogno del focus per capire a quale elemento stiamo
facendo riferimento, a differenza dell'onkeypress. L'onclick inoltre non
sposta sempre il focus – solo negli elementi che possono ottenerlo.
 
Se ad esempio associ un onclick a un div, quando ci clicchi, l'elemento
attivo è il body, non il div sul quale hai cliccato; mentre invece se
fai la stessa cosa con un elemento che può avere il focus, tipo un
elemento di una form, l'elemento attivo diventa quello su cui hai cliccato.
 
Nota che, se ben ricordo, puoi dire che un elemento che di norma non può
avere il focus deve essere "focusable". Questo lo fai, sempre se la
memoria non m'inganna, con il `tabindex`. Non ricordo il supporto dei
browser, e comunque in questo modo l'elemento diventa "iterabile"
dall'utente usando il tab.
Questo giusto per la cronaca, di norma è preferibile evitare di
pasticciare con queste cose, anche perché non se ne ha bisogno. Se
spieghi cos'è che vuoi ottenere, forse ti possiamo indicare l'approccio
corretto.

 corretto.
 
grazie ancora.
purtroppo non è molto facile spiegare cosa desidero fare.
tant'è vero che non ho ricevuto risposta al precedente post sulla
navigazione sui tabindex nel quale avevo buttato giù le cose in un
modo troppo diretto.
 
in sunto, sto cercando di migliorare l'usabilità di una successione di
select rispetto alla modalità disponibile di default.
 
per quanto riguarda questo singolo post, credo che il problema di
fondo sia proprio la mia comprensione imprecisa del concetto di focus.
mio malgrado, nel contesto in cui sto lavorando, l'elemento attivo è
sempre, inesorabilmente il body (: .
potrei uscirne con un document.onkeypress=azione ma non mi piace
ancora abbastanza.
 
tornerò alla carica.
non scandalizzarti dei pasticci. è così che si impara.
:)

 :)
 
Ci mancherebbe, non ci si scandalizza. :) È che senza un pelino più di
spiegazioni è difficile starti dietro e darti una mano.