在我看来,我有一个产品循环,效果很好。
然后我编写了mouseover-popup(JS)。弹出窗口显示所有产品的循环,而不是用户正在查看的单个产品。
无论如何可以教我如何解决这个问题?
Haml的:
#product_view
- @products.each do |product|
.product_each
.product_image
= link_to (image_tag product.image.url(:tiny)), product, class: "each", popup: true
.pop-up
%poptitle= product.title
JS:
$(function() {
var moveLeft = -100;
var moveDown = -150;
$('a#link').hover(function(e) {
$('.pop-up').show()
.css('top', e.pageY + moveDown)
.css('left', e.pageX + moveLeft)
.appendTo('body');
}, function() {
$('.pop-up').hide();
});
$('a#link').mousemove(function(e) {
$(".pop-up").css('top', e.pageY + moveDown).css('left', e.pageX + moveLeft);
});
});
编辑:
class
代替id
(名为“each”)
$(function() {
var moveLeft = -100;
var moveDown = -150;
$('a.each').hover(function(e) {
$('.pop-up').show()
.css('top', e.pageY + moveDown)
.css('left', e.pageX + moveLeft)
.appendTo('body');
}, function() {
$('.pop-up').hide();
});
$('a.each').mousemove(function(e) {
$(".pop-up").css('top', e.pageY + moveDown).css('left', e.pageX + moveLeft);
});
});
答案 0 :(得分:1)
您正在使用$('.pop-up')
的位置,您将获得页面上具有类pop-up
的每个元素的列表。您应该使用$(this).parent().find('.pop-up')
查找每个链接的父级的子.pop-up
个元素。