Ich habe eine Liste von Produktbildern mit zwei verschiedenen Bildern auf jedem Produkt. Die erste wird angezeigt, wenn Sie nicht über das Bild fahren, und die zweite wird angezeigt, wenn Sie den Mauszeiger über das Bild bewegen.jQuery - .hover() zurück ändern img wenn nicht hover = falsch img
Das Problem ist, dass, wenn ich vom Schweben über ein Produktbild und schnell zu einem anderen, dann das erste Produktbild bekommt die zweite Produkte firstimage, so falsch Produktbild.
Der Code sieht etwa so aus:
HTML:
<div id="listing">
<ul>
<li data-artnr="3212" class="product">
<div class="image">
<a href="/">
<img src="/pathTo/image/3212.jpg" class="loaded">
</a>
</div>
</li>
<li data-artnr="3213" class="product">
<div class="image">
<a href="/">
<img src="/pathTo/image/3213.jpg" class="loaded">
</a>
</div>
</li>
<li data-artnr="3214" class="product">
<div class="image">
<a href="/">
<img src="/pathTo/image/3214.jpg" class="loaded">
</a>
</div>
</li>
</ul>
</div>
jQuery:
$("#listingContent").find(".product").hover(function() {
$product = $(this);
$image = $(this).find(".loaded");
var artnr = $product.data("artnr");
window.oldImage = $image.attr("src");
var newImage = "/pathTo/image/"+artnr+"_topoffer.jpg";
$product.data("old", oldImage);
$image.fadeOut(150, function() {
$(this).load(function() {
$(this).fadeIn(150);
}).attr("src", newImage);
});
},
function() {
$image.fadeOut(150, function() {
$(this).load(function() {
$(this).fadeIn(150);
}).attr("src", oldImage);
});
});
Ich denke, das etwas mit dem fadeIn/fadeOut zu tun haben, so dass $ (this) bereits geändert, bevor das FadeIn startet. Gibt es einen besseren Weg, um dieses Problem zu vermeiden? Das Problem tritt nicht auf, wenn ich fadeIn/fadeOut entferne, aber das ist etwas, was ich haben möchte, da ohne es die Übertragung zu hart ist.
Hallo wird es eine große Hilfe, wenn Sie die Geige für Ausgabe erstellen können, auf diese Weise macht, ist für uns einfacher, es zu lösen. Danke :) – Help