我有一個項目列表,其中包含一些我想在點擊顯示/隱藏細節鏈接時顯示的細節。經過一些實驗後,我遇到了兩個問題。ruby「each do」and scriptaculous Effect.BlindDown/Up
我很難使它顯示/隱藏鏈接只顯示特定項目的div。現在,點擊任何顯示/隱藏鏈接時,它會顯示所有div。
此外,必須有一個更優雅的方式來做到這一點,而不需要做一個循環來生成一堆javascript。我看着效果。多種,但我不知道如何在這種情況下使用它。
一些洞察力或指向大方向將不勝感激! 謝謝!
這裏是供參考的代碼。
<script type="text/javascript">
function show_details() {
<% @posts.each do |b| %>
Effect.BlindDown('details_<%= b.id %>', {duration:0.3});
$('hide_details_link_<%= b.id %>').style.display = 'inline';
$('show_details_link_<%= b.id %>').style.display = 'none';
<% end %>
}
function hide_details() {
<% @posts.each do |b| %>
Effect.BlindUp('details_<%= b.id %>', {duration:0.3});
$('hide_details_link_<%= b.id %>').style.display = 'none';
$('show_details_link_<%= b.id %>').style.display = 'inline';
<% end %>
}
</script>
<ul id="posts">
<% @posts.each do |b| %>
<li>
<div id="show_details_link_<%= b.id %>" style="display:inline;">
<%= link_to_function "show details", 'show_details()' %>
</div>
<div id="hide_details_link_<%= b.id %>" style="display:none;">
<%= link_to_function "hide details", 'hide_details()' %>
</div>
<div id="details_<%= b.id %>" style="display:none;">
<p> <%= b.comments %></p>
</div>
</li>
<li><%= link_to b.title, {:action => 'show', :id => b.id} -%></li>
<% end %>
</ul>