Jquery图片库

时间:2012-03-27 14:16:08

标签: jquery ruby-on-rails ruby-on-rails-3.1 image-gallery

我有一些产品的图片,我希望用户能够点击缩略图,然后显示大图。我使用了简单的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>

请帮忙!

4 个答案:

答案 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();
    });