Pour Internet Explorer uniquement, il semble que la cible (srcElement) des clics, des souris, des souris, des mouseovers, etc. sur les éléments <select />
ne soit pas liée à l'élément <option />
.Capture d'événements de souris pour l'élément d'option HTML sur IE
avec le code HTML suivant:
<select id="madness">
<option value="1">One</option>
<option value="2">Two</option>
<option value="2">Three</option>
</select>
et ce gestionnaire d'événements jQuery de base:
$("#madness").mousedown(function(e){
alert(e.target.value); //jQuery pushes srcElement into the target for us here
});
L'objet qui est en e.target
ou e.srcElement
est toujours égale à la <select />
et non la <option />
.
J'ai décidé d'être créatif et d'essayer d'utiliser document.elementFromPoint(e.clientX,e.clientY)
et cela retourne aussi l'élément SELECT. Cela pose la question, est-il possible de déterminer le <option />
à l'intérieur d'un <select />
via des arguments d'événement, des coordonnées ou autre chose? Je suis conscient que je peux feindre cela avec un div scrollable de cases à cocher. Pour les besoins de cette question, je voudrais des solutions qui peuvent utiliser l'élément de sélection natif.
Je ne pense pas * Chrome prend en charge les événements provenant des éléments '