No veo por qué onfocus='myFunction()' funciona en una entrada, pero no en una opción, por ejemplo:
<input type="text" id="fname" onfocus="myFunction()">llama a myFunction cuando hace clic en él o cuando ingresa a él, pero:
<select multiple> <option onfocus="myFunction()">whatever</option> </select>No funciona cuando entras en la opción.
¿Por qué es esto? No puedo encontrar una documentación que diga qué eventos funcionan en qué elementos. He visto esto durante mucho tiempo, pero ahora quiero saber por qué.
EDITAR: estoy usando Chrome.
Consulte los documentos web de MDM
Para que onfocus se active en elementos que no son de entrada, se les debe dar el atributo tabindex
Entonces, en otros términos: ¡dale a la opción con el evento de enfoque un tabIndex! El siguiente ejemplo debería funcionar.
function myFunction() { console.log("focus"); } function myFunction2() { console.log("focus2"); } <select multiple> <option tabIndex="0" onfocus="myFunction()">whatever</option> <option tabIndex="0" onfocus="myFunction2()">whatever2</option> </select>