J'essaie d'activer onMouseOver et onMouseOut pour toutes mes icônes et de les remplacer par des icônes uniques.Implémentation de mouseover/mouseout pour de nombreuses images dans un fichier JavaScript externe
A l'origine j'avais ceci:
<img id="EEProfile" src="images/EEProfile.png" alt="Employee Profile" onMouseOver="mouseOver()" onMouseOut="mouseOut()">
fichier externe JS:
function mouseOver() { document.getElementById("EEProfile").src = 'images/EEProfile_Hover.png'; }
function mouseOut() { document.getElementById("EEProfile").src = 'images/EEProfile.png'; }
Il y a quelques problèmes avec ceci:
Cette méthode fonctionne sur IE mais pour certains raison sur Chrome onMouseOut ne fonctionne pas, donc les images de survol sont restantes.
Nécessite un javascript en ligne. J'essaie d'avancer vers l'élimination de tous les JS en ligne.
- Nécessite que je code en dur les chemins de l'image pour chaque image de la page.
Comme tous les chemins d'image sont les mêmes et suivent la même convention de dénomination, qui est juste
'images/ImageID.png' ou 'images/ImageID_Hover.png'
J'espérais mettre en œuvre quelque chose comme ceci:
Pseudocode HTML:
<img id="EEProfile" src="images/EEProfile.png" alt="Employee Profile" onMouseOver="mouseOver(this.id)" OnMouseOut="mouseOut(this.id)">
Pseudocode JavaScript:
function mouseOver(id) { document.getElementById("id").src = 'images/id.png'; }
function mouseOut(id) { document.getElementById("id").src = 'images/id_Hover.png'; }
Je veux passer l'ID de l'élément d'image à l'mouseOver et les fonctions mouseOut en tant que paramètre, utilisez que la chaîne d'ID littérale dans le chemin de l'image donc je ne pas à hardcod Le chemin de chaque image. Est-ce que quelque chose comme ça est possible? Y at-il un moyen de le faire sans JS en ligne?
J'ai envisagé d'utiliser le contenu: hover sans JS mais il n'est pas supporté par IE.
Passant 'ce' dans la fonction dans votre déclaration html comme 'onmouseover = "mouseOver (this)"', puis ayant mouseOver fonction (img) {} vous donnera accès à cette img informations et vous serez en mesure d'obtenir l'ID. Vous pouvez également utiliser JQuery et assigner une classe à vos img et faire $ ('. Img-class'). Each (function() {puis lier les événements mouse over et mouse out à chaque élément img} (ou vous pouvez juste fais $ ('img') sans assigner de classe si tu veux) –