Ruby on rails Jquery数据方法只返回值1

时间:2014-04-30 07:28:09

标签: jquery ruby-on-rails

第一个stackoverflow问题。我已经发现了一些令我困惑的东西,现在已经很长一段时间了,我不确定为什么要这样做。基本上我所做的就是在rails Link_to按钮上创建一个ruby,并指定我需要传递给Jquery的数据(图像id)问题是,每当我试图获得所有数据值时我都会这样做。最终收到的是值1!

让我给你一部分代码,希望我能够具体到足以得到一个好的回应。

以下是我的Ruby on rails Gallery索引页面的一部分

<% @gimages.each do |image| %>
<% if image.present? %>
<%= link_to (image_tag image.image_url(:thumb)), gallery_image_path(image), data:{id:     image.id, remote: true}, class:"gallery" %>
<% end %>
<% end %>

正如您所看到的,数据:{id,image.id,remote:true}正在传入。页面未链接到gallery_image_path(图像),它正在执行我编码的jquery

这是Jquery

$(function(){
var photo = $('.gallery');
photo.on('click', function(event){
var id = $('.gallery').data("id");
console.log(id);
window.alert("hey");    
});

});

该函数正确传递并显示window.alert,遗憾的是由于某种原因,我回来的数据总是&#34; 1&#34;,这是唯一被记录的东西。

在检查元素后,我会提供一些我的HTML:     

<a class="gallery" data-id="2" data-remote="true" href="/gallery_images/2"><img       alt="Thumb 1380148 10152070820204305 182164197 n"   src="/uploads/gallery_image/image/2/thumb_1380148_10152070820204305_182164197_n.jpg"></a>

正如您所看到的,数据ID似乎正确传递(这些是我提供的前2张图片。

不幸的是,当我在console.log时,唯一出现的是价值1.我想知道是否有人可以向我解释这个以及如何解决这个问题。

非常感谢你们, 安德鲁

1 个答案:

答案 0 :(得分:0)

您执行$('.gallery').data("id"),它会返回匹配集中第一个元素的键id的数据值,如the API中所述。使用选择器$('.gallery'),您可以选择所有照片,这样您每次都会获得第一个id值,在您的情况下显然为1

因此,当您使用$('.gallery').data("id")替换$(this).data("id")时,它应该可以正常工作。 $(this)指的是点击的<a class="gallery">元素。