Rails 3 - Ajax - нужна помощь с некоторыми базовыми Javascript / Jquery - PullRequest
0 голосов
/ 27 июля 2011

Я пытаюсь выучить некоторый JavaScript и застрял.

Прямо сейчас у меня очень глупое простое приложение для создания галереи / изображений. Я пытаюсь сделать так, чтобы, когда кто-то нажимал на изображение, он связывал их с URL-адресом, который у меня есть в моих данных модели, с помощью ajax. Причина в том, что я хотел бы также сделать что-то с ajax, например, обновить счетчик голосов / счетчиков для изображения при нажатии.

Прямо сейчас в представлении я делаю это с:

<% @galleries.each do |g| %>
    <% for image in g.images %>
    <div id="picture">
      <%= render 'top_nav'%>

      <%= link_to image_tag(image.file_url(:preview)), g.source, :remote => true, :target => "_blank" %>

Пока что с javascript я разобрался, как открыть URL, но только если я жестко закодировал один в javascript. Вот мой код index.js.erb (очень просто):

window.open("http://www.google.com");

Но я не могу понять, как бы я связался с моим g.source, как будто я в цикле do моего представления. Как я могу получить доступ к данным этой модели в JavaScript? Я выяснил, как визуализировать этот код по щелчку изображения, с помощью следующего в ... javascripts / application.js:

$(function() {
    $("#galleries #picture a img").live("click", function() {
        $.getScript(this.href);
        return false;
    });
});

У кого-нибудь есть указания на то, как я могу начать взаимодействовать с данными моего приложения вместо жесткого кодирования URL-адреса в открытом виде?

Спасибо

1 Ответ

2 голосов
/ 27 июля 2011

Вы находитесь на правильном пути, чтобы открыть изображение в окне, если href, полученное из a, указывает на файл изображения.

Попробуйте использовать этот код:

$(function() {
    $("#galleries #picture a img").live("click", function() {
        var lnk = $(this).closest("a").attr("href");
        window.open(lnk);
        return false;
    });
});

"#galleries #picture a img" дает вам img элементов, но вам нужен hyperlink, который содержит изображение.поэтому мы будем использовать $(this).closest("a"), чтобы получить hyperlink для URL изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...