3

このようなサイドバーがあります。

<div id = "sidebar-links">
      <% @locations.each do |locs| %>
        <p style = "border-bottom: 1px black solid">
        <a href = "#" class = "sidebar-click"><%= locs['Address'] %></a></p>
      <% end %>
    </div>

サイド バー リンクの 1 つがクリックされるたびに、別の div でパーシャルをレンダリングし、 そのパーシャルにローカル変数としてid = "container"渡したい。locs

どうすればそれを行うことができますか?

4

2 に答える 2

1

まず、link_toヘルパー メソッドを使用してみてください。

<%= link_to locs['Address'], ajax_link, :remote => true, :html => {:class => "sidebar-click"} %>

次に、次のような ajax 応答を処理する js バインドを作成する必要があります。

$(function() { 
  $(".sidebar-click").bind("ajax:success",  
    function(event, data){  
      $("#container").html(data);  
  });  
}); 

更新: 次のドキュメントを確認してください: http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/link_to_remote

于 2012-12-19T05:08:19.367 に答える
0

これを試してください

<%= link_to locs['Address'], "path/to/redirect", :class => "side_bar" %>

そしてjsで

 $(".document").ready(function(){
     $(".side_bar").live("click", function(){
        $.ajax({
            dataType: 'html',
            type: 'get',
            url: $(this).attr('href'),
            success: function(data){
                       $(target_div).html(data);
                     }
        })
     })
  })

そしてあなたのコントローラーアクションで

def action
  #write your code here
  respond_to do |format|
    format.js{render: template}
  end
end
于 2012-12-19T10:52:40.837 に答える