我有一些产品的图片,我希望用户能够点击缩略图,然后显示大图。我使用了简单的JQuery教程http://papermashup.com/simple-jquery-gallery/,但出于某种原因,当我点击缩略图时,只显示我点击的缩略图的大图片。其他缩略图消失了,所以我无法点击它。
我正在使用Carrierwave,rails 3.2和rails 3.2附带的jquery
$(function() {
$(".image").click(function() {
var image = $(this).attr("rel");
$('#image').hide();
$('#image').fadeIn('slow');
$('#image').html('<img src="' + image + '"/>');
return false;
});
});
<div id ="image" >
<%= image_tag(@product.prod_images.first.image_url(:large_pic)) %>
<% @prod_images.each do |image| %>
<ul class="thumbs">
<li>
<a href="#" rel="<%= image.image_url(:large_pic) %>" class="image">
<%= image_tag(image.image_url(:thumb_pic)) if image.image? %>
</a>
</li>
</ul>
<% end %>
</div>
请帮忙!
答案 0 :(得分:2)
当您设置#image的HTML时,您将替换其中的所有代码。这就是缩略图标签消失的原因。
你应该试试这个:
<div id ="image" >
<%= image_tag(@product.prod_images.first.image_url(:large_pic)) %>
</div>
<% @prod_images.each do |image| %>
<ul class="thumbs">
<li>
<a href="#" rel="<%= image.image_url(:large_pic) %>" class="image">
<%= image_tag(image.image_url(:thumb_pic)) if image.image? %>
</a>
</li>
</ul>
<% end %>
答案 1 :(得分:0)
使用灯箱图库插件,例如colorbox
答案 2 :(得分:0)
你是div标签,id为“image”,包含你的li。在您的脚本中,您将使用图像标记替换该div的HTML。你应该将你的li从“image”div移到另一个div中。
答案 3 :(得分:0)
解决方案最终成为了这个:
$('#thumb_holder li a').click (function(){
mainImg = $(this).attr('rel');
if(mainImg != current){
$('.current').fadeOut('slow');
$('#'+mainImg).fadeIn('slow', function(){
$(this).addClass('current');
current = mainImg;
});
$('#thumb_holder li').find('img').css('display','block');
}
$(this).children("img").toggle();
});