2011-07-27 10 views
0

私はいくつかのjavascriptを学びたいと思っています。Rails 3 - Ajax - いくつかの基本的なJavascript/Jqueryのヘルプが必要

今、私は本当にばかげた単純なギャラリー/画像アプリケーションを持っています。私がしようとしているのは、誰かが画像をクリックすると、それがajaxでモデルデータにあるURLにハイパーリンクされているようにすることです。その理由は、クリックしたときに画像のスコア/投票カウンタを更新するなど、Ajaxで何かをしたいのです。私は、URLを開く方法を考え出したが、私はジャバスクリプトに1をハードコーディングする場合にのみJavaScriptを使用して、これまでのところ

<% @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" %> 

:私はこれを行う観点で今

。ここに私のindex.js.erbコード(リアルシンプル)です:

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

しかし、私は私の見解のdoループにいるように私は私のg.sourceにリンクする方法を見つけ出すことはできません。 JavaScriptでこのモデルデータにアクセスするにはどうすればよいですか?

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

誰もが、私は自分のアプリケーションのデータとの対話を開始することができますどのように上の任意のポインタを持っている:私はフォロー中... JavaScriptの/ application.jsで、しかし画像のクリックしたときに、このコードをレンダリングする方法を考え出しましたオープンでURLをハードコーディングするのではなく?あなたはhrefあなたがイメージファイルにaポイントから取得する場合、ウィンドウ内の画像を開くには、右のパス上に非常に多くある

おかげ

+0

あなたの画像のリンクがtrueの場合、画像コントローラにajaxコールが送信されますか?このメソッドはjsに応答する必要があり、デフォルトではmethod.jsというテンプレートがレンダリングされます。そのテンプレートでは、アクションを完了するために、より多くのJavaScriptを含めることができます。 – efoo

答えて

2

このコードを試してみてください。

$(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を必要としています。画像URLにはhyperlinkを取得するために$(this).closest("a")を使用します。

+0

これはうまくいきました:) - 質問:私たちはimgのアンカーのhref属性(私の頭の中で働いています)を見ているので、このリンクを開いたときに私がビューに書き込むすべてを保存していますか?私はlink_toヘルパーで作成したものからHTMLで見られるようにリンクを開いていますか? – Kombo

+0

@Komboあなたの質問をしないでください。しかし、あなたのヘルパーは次のようなものを出すでしょう: ''。だから、イメージをクリックすると、それは新しいウィンドウでのみイメージを開きます。そこには他のHTMLのものはありません。 – TheVillageIdiot

+0

混乱の疑いでご迷惑をおかけします。私はそれを周り遊んで見つける。私はjavascriptが、私がビューで書いたもの(例えば:target => "_blank")から割り当てを持ってリンクを開く方法をいくつか保有していたのか不思議でした。私はあなたの助けに感謝しています!これは私の理解を助けてくれました。 – Kombo

関連する問題