2015-10-08 2 views
-2

J'essaie de créer une fonction jquery pour changer une image lorsque je survole l'image, cela fonctionne pour la première image mais pas pour la seconde, je ne suis pas sûr Pourquoi.Pourquoi ma fonction de survol de jQuery ne fonctionne que pour une image?

Boutons

$(document).ready(function(){ 
    var imgLinkedIn = $('#imgLinkedIn'); 
    var imgGithub = $('#imgGithub'); 

    imgLinkedIn.hover(function() { 
     $(this).attr("src","images/linkedIn-hover.png"); 
      }, function() { 
     $(this).attr("src","images/linkedIn.png"); 
    }); 

    imgGithub.hover(function() { 
    $(this).attr("src","images/Octocat-hover.png"); 
     }, function() { 
    $(this).attr("src","images/Octocat.png"); 
    }); 
}); 

HTML

 <a href="https://uk.linkedin.com/pub/ife-a/27/273/745" title="LinkedIn" id="imgLinkedin" target="_blank"> 
     <img class="imgContactLogos" id="imgLinkedIn" src="images/linkedIn.png" /> 
     </a> 
     <a href="http://github.com/cinofr3t" title="Github" id="imgGithub" target="_blank"> 
     <img class="imgContactLogos" id="imgGithub" src="images/Octocat.png"/> 
     </a> 
+3

probablement il y a un problème dans le sélecteur jquery pour 'imgGithub'. Comment 'imgGithub' est défini dans le code? –

+1

qu'est-ce que imgLinkedIn et imgGithub? – deepakb

+0

ou probablement le second imgGithub est en train d'être ajouté à DOM après que l'événement est attaché. Pouvons-nous vous voir code HTML? –

Répondre

0

Essayez ceci:

HTML:

<a href="https://uk.linkedin.com/pub/ife-a/27/273/745" title="LinkedIn" target="_blank"> 
     <img class="imgContactLogos" id="imgLinkedIn" src="images/linkedIn.png" /> 
     </a> 
     <a href="http://github.com/cinofr3t" title="Github" target="_blank"> 
     <img class="imgContactLogos" id="imgGithub" src="images/Octocat.png"/> 
     </a> 
    </div> 

JS

$('#imgLinkedIn').hover(function() { 
    $(this).attr("src", "images/linkedIn-hover.png"); 
}, function() { 
    $(this).attr("src", "images/linkedIn.png"); 
}); 

$('#imgGithub').hover(function() { 
    $(this).attr("src", "images/Octocat-hover.png"); 
}, function() { 
    $(this).attr("src", "images/Octocat.png"); 
}); 

REMARQUE: cela fonctionne si les deux images sont présentes dans les DOM après chargement de la page. Si vous le chargez dynamiquement, vous devez utiliser la méthode jQuery .on.

+1

Je ne suis pas en quoi c'est différent du code original?!? – Jamiec

+0

Je ne vois pas comment c'est différent –

+0

Première ligne 2 que vous n'avez pas fournie auparavant! – deepakb

-3

d'abord faire ceci:

imgLinkedIn = $("#imgLinkedIn"); 
imgGithub = $("#imgGithub");