javascript - jQuery Each Loop - 显示单个项目

标签 javascript jquery

我认为我有一个产品循环,效果很好。

然后我编写了鼠标悬停弹出窗口(JS)的代码。弹出窗口显示所有产品的循环,而不是用户正在查看的单个产品。

可以教我如何解决这个问题吗?

哈姆尔:

#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);
  });

});

最佳答案

如果您使用 $('.pop-up'),您将获得页面上 pop-up 类的每个元素的列表。您应该使用 $(this).parent().find('.pop-up') 查找每个链接父链接的子 .pop-up 元素。

关于javascript - jQuery Each Loop - 显示单个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118157/

相关文章:

javascript - SSG和SSR如何选择?

javascript - 从 Web API 提取并读取 JSON 数据

javascript - 如何使用 Ajax 添加多个计时器

javascript - 如何使用 JavaScript 等待 onchange 事件中的 Promise 完成?

javascript - 拖放在 Firefox 中不起作用

javascript - 如何避免 jqplot 中的刻度线与图例重叠

javascript - Ajax 加载仅适用于单个实例

Jquery 点击事件不工作

javascript - Yii2 比较验证不起作用

javascript - Guardian API,JSON解析jquery/javascript