Метод данных Ruby on rails Jquery, возвращающий только значение 1

0

Первый вопрос о stackoverflow. Я нашел кое-что, что озадачило меня в течение довольно долгого времени, и я не уверен, почему он это делает. В основном, что я сделал, создается рубина на кнопках Link_to rails и заданы данные, которые мне нужно передать в JQuery (идентификатор изображения), проблема, каждый раз, когда я пытаюсь получить это значение данных, все, что я получаю это значение 1!

Позвольте мне дать вам часть моего кода и, надеюсь, я могу быть достаточно конкретным, чтобы получить хороший ответ.

Вот часть моего Ruby on rails Gallery index page

<% @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, к сожалению, по какой-то причине данные, которые я возвращаю, всегда "1", это единственное, что регистрируется.

Я проведу некоторые из моих 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>

Как вы можете видеть, идентификатор данных, кажется, проходит правильно (это были первые 2 снимка, которые я предоставил.

К сожалению, единственное, что появляется, когда я console.log является значением 1. Мне было интересно, может ли кто-нибудь объяснить это мне и как я могу решить эту проблему.

Большое вам спасибо, Андрей

Теги:

1 ответ

0

Вы делаете $('.gallery').data("id"), который возвращает значение данных для id ключа первого элемента только в согласованном наборе, как написано в API. С помощью селектора $('.gallery') вы выбираете все фотографии, чтобы каждый раз получать первое значение id, что, по-видимому, 1 в вашем случае.

Таким образом, он должен корректно работать при замене $('.gallery').data("id") на $(this).data("id"). $(this) относится к элементу <a class="gallery">.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню