动态javascript与rails一起盘旋?

时间:2015-01-27 23:43:53

标签: javascript ruby-on-rails

我有一张包含许多照片的索引视图。 我想对每张照片进行悬停效果,但我的代码只会将效果放在第一张照片上,因为它没有ID。

我不确定如何接近。有什么帮助吗?

<script>
  $(".product-image").on("mouseover", function(){
    $("#product-overlay").show();
  });
  $(".product-image").on("mouseleave", function(){
    $("#product-overlay").hide();
  });
</script>

这将每次在同一个项目上添加效果(显示叠加),我需要每个项目都有独特的效果。

<li id="product_<%= product.id %>">
        <div class="product-image">
          <%= link_to small_image(product, :itemprop => "image"), url, :itemprop => 'url' %>
          <div id="product-overlay">More</div>
        </div>
      <% end %>
</ul>

1 个答案:

答案 0 :(得分:3)

问题只是您指的是$("#product-overlay").show()中的ID并隐藏。

试试这个:

$('.product-image').on('mouseover', function() {
  $(this).find('.product-overlay').show();
});

然后将您的观点更改为:

<li id="product_<%= product.id %>">
  <div class="product-image">
    <%= link_to small_image(product, :itemprop => "image"), url, :itemprop => 'url' %>
    <div class="product-overlay">More</div>
  </div>
</li>