我正在尝试使用 jQuery 创建非常简单的图像浏览器。我这样做只是为了学习,目前不会在任何项目中使用。
我有如下图像和缩略图:
<div class="images">
<img src="http://www.dummyimage.com/400x200/222/fff.jpg" alt="" data-idi="1"/>
<img src="http://www.dummyimage.com/400x200/534/fff.jpg" alt="" data-idi="2"/>
<img src="http://www.dummyimage.com/400x200/345/fff.jpg" alt="" data-idi="3"/>
<img src="http://www.dummyimage.com/400x200/fed/111.jpg" alt="" data-idi="4"/>
</div>
<div class="thumbs">
<button data-idb="1"><img src="http://www.dummyimage.com/50x50/222/fff.jpg" alt="" /></button>
<button data-idb="2"><img src="http://www.dummyimage.com/50x50/534/fff.jpg" alt="" /></button>
<button data-idb="3"><img src="http://www.dummyimage.com/50x50/345/fff.jpg" alt="" /></button>
<button data-idb="4"><img src="http://www.dummyimage.com/50x50/fed/111.jpg" alt="" /></button>
</div>
悬停在缩略图上应替换上面的主图像。
我已经成功地做到了这一点,我们称之为图像“集”,如jsfiddle.net上所示。
这是用于实现此目的的简单脚本:
$('#images img').hide().first().show();
$('#thumbs button').on( "mouseover", function(e) {
var idb = $(this).data("idb");
$('#images img').hide();
var img = $('#images').find("[data-idi='" + idb + "']").show();
});
现在我想添加另一组图像,并用.each()
函数包装脚本。但是当我试图只显示第一张图片时,我一开始就遇到了问题:
var imgs = $('.images').hide();
$.each(imgs, function( index, val ) {
var firstImage = $(this).children(":first");
console.log(firstImage);
firstImage.show();
});
正在安慰正确的图像,但它没有显示,如例外。jsfiddle.net上的实时示例。你能帮我解决这个问题吗?TIA