11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un souci pour l'affichage des mes images quand je sélectionne une option. Avec l’événement onchange ça marche au choix de l'option mais l'événement mouseover ne marche pas simultanément. J'aimerais afficher mes images au survole et au clic sur toutes les options et sur tous les navigateurs.

Nb: quand je choisis l'option aucun logo, j'ai une image vide qui s'affiche. J'aimerais corriger ce comportement. Merci par avance !


<select name="logos" id="logo">
        <option value="">Choisir votre logo :</option>
        <option value="">Aucun logo</option>
        <option value="logo1.jpg">Logo 1</option>
        <option value="logo2.jpg">Logo 2</option>
        <option value="logo3.jpg">Logo 3</option>
        <option value="logo4.jpg">Logo 4</option>
        <option value="logo5.jpg">Logo 5</option>
</select>
<div id="div"></div>


function generateLogos() {
       var which = this.value;

       div.innerHTML='<center>Loading image...</center>';
       div.innerHTML='<img src=""quot;"quot;'+which+'" >';
}
$("#logo").find('option').on('mouseover', generateLogos);
Modérateur
Salut,

Apparemment impossible de chopper les hover des <option> en js sous chrome...
Une solution consiste a donner une taille à ta liste :
<select size="7" name="logos" id="logo">

De cette façon elle ne sera plus déroulante, toutes les options seront visible et le bug disparaît...

Sinon a coup de div plutôt que d'utiliser un select.


EDIT : Petit test https://jsfiddle.net/bg895hgh/
Modifié par _laurent (09 Mar 2017 - 11:09)
Bonjour @_laurent,

Merci pour la réponse que tu m'as apporté.
Si avec les options ça ne marche pas, comment envisagerait la solution avec les divs ?

Et en dehors du problème de hover sur Chrome, même sur Firefox ça ne marche pas quand j'utilise un nouveau pc. Ça marche que sur le mien car sur les pc de mes collègues rien. Ce que je ne comprends pas. J'ai vidé le cache et tous.

Cdlt,
Modifié par dinolam (09 Mar 2017 - 16:41)
Modérateur
mmmmm ca avait l'air de marcher sous FF... Mais c'est clair que c'est un peu bancal.

Pour la solution maison tu fais une liste (ca peut etre une liste classique à base de <ul> et <li> hein) et au survol des éléments tu fais exactement la meme chose.... ici ce qui coince c'est que les options ont un status un peu bâtard géré différemment par les navigateurs.

Apres soit tu laisse la liste telle qu'elle soit tu tente de la faire ressembler a un select en faisant un genre de menu déroulant...
Je vais me contenter d'utiliser l'événement OnChange seulement puisque je n'ai pas trop le choix. Je veux rester dans un formulaire pour que les éléments soient homogènes.

Merci encore !

A bientôt !