2011-06-28 10 views
0

とlink_to_function使用:私はこのようなビューのフォーム持つアンカー

<% @company.projects.each do |project| %> 
<%= link_to_function project.title, "toggle_information_for('#{project.id}')" %> 
<br /> 
    <div id="information_for_<%= project.id %>"> 
    <p><%= project.information %></p> 
    <br/> 
    </div> 
<% end %> 

をそして、私はこのjQueryの機能を持っている:

function toggle_information_for(project){ 
$("#information_for_"+project).toggle(); 
} 

は、どのように私はアンカーのようなのlink_toすることができますか?例えば

私は、#1 PROJECT_ID /に変更toggle_information_for機能とurlでプロジェクトについての情報を開け、project.titleする]をクリックした場合。どうしたらいいですか?

答えて

1

私は私はあなたの質問を理解していることをわからないんだけど、あなたはtoggle_information_for JS関数を呼び出すために探している、あなたはこのようなあなたのlink_toを記述する必要があります:あなたが追加する探しているなら

<%= link_to_function project.title, "javascript:toggle_information_for('#{project.id}')" %> 

あなたのURLにプロジェクトIDを入力してみてください:

function toggle_information_for(project){ 
    $('#information_for_' + project).toggle(); 
    location.hash = project; 
} 

うまくいけば助けてください。

<%= link_to_function project.title, "#information_for_#{project.id}" %> 

など、あなたのJavaScriptを書く:この作品ながら、私はこのようなあなたのlink_toを書き込むことで、リンクのhrefで直接JSコールを取り除くと、あなたのJSで直接イベントハンドラを追加取得をお勧めしたいですこれは:

function toggle_information_for(e){ 
    $(e.target.href).toggle(); 
    location.hash = project; 
} 

$('#wrapper_div').delegate('click', 'a', toggle_information_for); 
0

私は、クラスを追加し、その後、htmlからjQueryロジックを分離することをお勧めします。

<% @company.projects.each do |project| %> 
<div class="info_for" id="info_for_<%= project.id %>"> 
<%=project.title%> 
<br /> 
    <div> 
    <p><%= project.information %></p> 
    <br/> 
    </div> 
</div> 
<% end %> 

そして、いくつかのjQuery

$('.info_for').click(function(){ 
    $('div',this).toggle(); 
}); 
関連する問題