2009-10-29 13 views
1

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.

+0

Je ne pense pas * Chrome prend en charge les événements provenant des éléments '

Répondre

2

En termes simples, aucune solution n'utilise l'élément de sélection natif.

+2

L'équipe IE ne semble pas le penser: "Dans IE7, cependant, nous avons ré-implémenté l'élément