2009-09-21 6 views
5

J'utilise jquery pour modifier l'arrière-plan d'une liste déroulante. Pour une raison quelconque, il faut maintenant deux clics pour sélectionner un élément, au lieu d'un clic.Jquery sur l'événement de mise au point avec une balise de sélection html

Ce que je ne peux pas trouver est pourquoi cela se produit et une solution de contournement efficace ou mieux encore une solution. Cela semble se produire dans ie7 & soit 8 (un ami l'a testé sur leur boîte) Voici le code exact que nous utilisons pour tester ce problème.

----------------------------- MARQUAGE COMPLET --------------- -----------------

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script> 

<style type="text/css"> 
    .yellowBackground, .yellowBackground > * > * 
    { 
     background-color: #FFFF79; 
    } 
</style> 

<script type="text/javascript"> 

    $(document).ready(function() { 
     $('select').focus(function() { 

      $(this).addClass('yellowBackground'); 

     }) 
    }); 
</script> 
</head> 
<body> 
    <form> 
    <select> 
     <option value="A">Option 1</option> 
     <option value="B">Option 2</option> 
    </select> 
    </form> 
</body> 
</html> 
+0

Si vous avez trouvé que cela ne vous est pas unique lors de vos recherches sur le Web, vous devez fournir des liens pour justifier cette réclamation. –

+0

Je ne doute pas de vous, en espérant que plus de détails seraient fournis ailleurs. –

+0

Yup, complètement comprendre laissez-moi les tirer et poster dans le commentaire suivant –

Répondre

2

Cela semble être un known issue in IE7 and forward.

Comme mentionné précédemment, une alternative consiste à utiliser l'événement onmousedown pour le contourner.

$(document).ready(function() { 
     $('select').mousedown(function() { 

      $(this).addClass('yellowBackground'); 

     }) 
    }); 

Cela ne fonctionnera pas avec la plus tabulant menu déroulant, mais est censé onfocusin fonctionner aussi bien (mais il n'existe pas dans jquery).

0

Je pense que le problème est plus susceptible de le faire avec la façon dont le contrôle <asp:DropDownList> a été utilisé. Sans voir le code côté serveur, il est difficile d'avoir une vue d'ensemble. Pouvez-vous également fournir le balisage aspx et le code-behind pour votre page?

+0

vient d'ajouter un code pour une page simple à illustrer. Cela se produit uniquement dans IE 7. désolé je n'ai pas précisé que plus tôt –

+0

vous 'AutoPostBack = true' sur le' '? –

+0

L'utilisation de l'exemple de code ci-dessus en ajoutant l'autopostback ne modifie pas le comportement. –

Questions connexes