我有一张包含许多照片的索引视图。 我想对每张照片进行悬停效果,但我的代码只会将效果放在第一张照片上,因为它没有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>
答案 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>