Sto cercando un modo per determinare se/quando un menu di elemento <select>
è aperto. Non ho bisogno di forzarlo per aprire o chiudere, basta capire se è aperto o chiuso in un dato momento.C'è un modo per determinare se un menu a discesa <select> è aperto?
Posso ascoltare gli eventi per messa a fuoco/sfocatura, mouse/mouse, ecc., Ma non penso di poter capire in modo affidabile lo stato del menu da quegli eventi. Ad esempio, il mouse seguito da mouseup potrebbe significare che l'utente ha fatto clic e trascinato su una selezione e rilasciato (nel qual caso il menu è ora chiuso) o fatto clic e rilasciato per aprire il menu (in tal caso il menu è aperto). Sembra anche probabile che il comportamento specifico dei menu a discesa dipende dal browser.
So che potrei farlo se apro il mio menu a discesa, ma preferisco usare <select>
.
Esiste un modo affidabile per scoprire se un menu a discesa è aperto? O è qualcosa che Javascript non può sapere?
Conclusione: Non sembra esserci un modo garantito per determinare se un menu di selezione è aperto, sia chiedendo l'oggetto sia ascoltando gli eventi che viene attivato.
per mio uso Sono solo tenere traccia di se il SELECT ha fuoco con onfocus e onblur. Suppongo che non ci sia modo per il menu di essere aperto senza messa a fuoco, e questo sembra essere vero in tutti i browser che ho testato. In realtà non mi dice quando il menu è aperto, ma mi dice che quando è non è possibile aprire, che è abbastanza buono per i miei scopi.
CRONACA - le versioni successive di IE aprire un menu elenco di selezione personalizzato, che non si attiva i soliti eventi. Essenzialmente quando apri un elenco di selezione il tuo mouse sta ora passando il mouse su qualcosa che non si riferisce al DOM – JDandChips