Je ne veux pas que les images se chargent jusqu'à ce que le lien se déplace, alors, voilà le script, mais ça ne fonctionne pas, quelqu'un peut-il m'aider à corriger cela? J'ai ajouté un auditeur d'événement à chaque lien, et sur mouseover appelé une fonction qui définit l'image. Pour rendre les choses plus intéressantes, nous pouvons copier lazyload un peu ici et utiliser également la propriété data-original 🙂
Par exemple: c'est le code HTML:
<li> <a href="#" class="tip_trigger"> <img class="tip" alt="300 Grams" data-original="https://lh5.googleusom/-qCRpw.../300%2520.jpg" src='empty.gif' width="90" height="90"/> Alex </a> </li>
Ensuite, ajoutez un auditeur d'événements:
Code:
// call for each element with the class 'tip' that's being hovered upon $('.tip').hover(function() { // retrieve the image inside this element var elem = $(this).find('img'); // set the 'src' to the 'data-original' value elem.attr('src', elem.attr('data-original')); });
Pour une démonstration en direct, vous pouvez voir cette page http://bloghutsbeta.blogspot.com/2012/04/testing-slidernav.html la partie ci-dessus du script est uniquement ajoutée à la première lettre ALEX dans la catégorie 'A'.
.tip
est déjà l'image afin que vous ne puissiez pas trouver une image avec $(this).find('img');
Essayez à la place
$('.tip_trigger').hover(function() { // retrieve the image inside this element var elem = $(this).find('img'); // set the 'src' to the 'data-original' value elem.attr('src', elem.data('original')); });
Utilisez également la méthode .data()
au lieu de .attr()
var elem = $(this).find('img');
<- vous recherchez une image lorsque c'est l'image.
Remplacez l'élément que vous attachez au volant vers
$('.tip_trigger').hover(function() { // retrieve the image inside this element var elem = $(this).find('img'); // set the 'src' to the 'data-original' value elem.attr('src', elem.attr('data-original')); });
Ou gardez-le comme ça et ne cherchez pas une image
$('.tip').hover(function() { var elem = $(this); // set the 'src' to the 'data-original' value elem.attr('src', elem.attr('data-original')); });
Vous avez lié le pivot à l'élément img, de sorte que vous ne pouvez pas trouver un enfant img. Utilisez simplement ceci ou changez le volant vers .tip_trigger.
$('.tip_trigger').hover(function() // That should do the trick { // retrieve the image inside this element var elem = $(this).find('img'); // set the 'src' to the 'data-original' value elem.attr('src', elem.attr('data-original')); });
JQuery.find () recherche des enfants. Vous avez déjà trouvé l'img avec votre ".tip" -selector.
var elem = $(this);