HTML:
<div class="slide">
<div class="left">
<img src="img-lg.png" class="image1" />
</div>
<div class="thumbs">
<img src="img-sm.png" />
</div>
</div>
<div class="slide">
<div class="left">
<img src="anotherimg-lg.png" class="image1" />
</div>
<div class="thumbs">
<img src="anotherimg-sm.png" />
</div>
</div>
jQuery:
var originalContent = $('.left').html();
$("div.thumbs img").hover(function(){
var largesrc = $(this).attr("src").replace("sm","lg");
$(".left").html('<img src="' + largesrc
+ '" width="560" height="377" class="largeimage" />');
}, function() {
$(".left").html(originalContent);
});
我在悬停时将较大的图像替换为较小的图像,然后恢复为原始图像。这个工作正常,但是我不知道如何使它与多个实例一起使用。
在第二张幻灯片集中,左图像被原始的第一左图像代替,而不是第二左图像。
最佳答案
$("div.thumbs img").hover(function(){
var $this = $(this);
// find the containing .slide, then find .left within that
var left = $this.closest('.slide').find('.left');
// store the original content as "data" on `left`, so
// we can get it easily in the future
left.data('originalContent', left.html());
var largesrc = $this.attr("src").replace("sm","lg");
left.html('<img src="' + largesrc
+ '" width="560" height="377" class="largeimage" />');
}, function() {
var $this = $(this);
var left = $this.closest('.slide').find('.left');
// fetch the "data" we stored earlier, and restore it
left.html(left.data('originalContent'));
});
一个实时示例可用here。