0

部分的な呼び出しを介してレンダリングするアイテムのリストがあります

render @items

各項目は div 内に配置され、JS の「無効化」リンクがあります

<div id="item_id_<%=item.id%>
   <%=item.name>
   <%= link_to disable_item_path(item), :remote => true %>
</div>

コントローラー内で、データベース内のアイテムのフラグを False に変更し、ページを再レンダリングしてリストからアイテムを削除したいと考えています。

私はdisable.js.coffeeの次のコードでそうしています

$('#items_list').html("<%= escape_javascript(render(:partial => @items)) %>")

私の質問: 特定の項目 DIV を非表示にし、ページ上のすべての項目を再レンダリングしないようにしたい (なぜですか? コーディングが優れていると思うからです)。

それ、どうやったら出来るの?@item_id を coffeescript に渡して、次のようにしてみました

$('item_id'+@item_id).hide

しかし、このあたりを読むと、そうするのは間違った方法のようです。

ありがとう!

4

2 に答える 2

1

単に div を非表示にするには、これをdisable.js.coffeeファイルに入れます。

$("#item_id_<%= item.id %>").hide()
于 2012-04-12T22:18:03.243 に答える
0

子クラスごとに親#itemsdivを作成してから、またはそのようなもので参照してみませんか。.item$('#items > .item').hide

現時点であなたは

<div id="item_id_1">...</div>
<div id="item_id_2">...</div>
<div id="item_id_3">...</div>

等々。

代わりに、次のことができます。

<div id="items">
  <div class="item">...</div>
  <div class="item">...</div>
  <div class="item">...</div>
</div>
于 2012-04-12T22:06:57.473 に答える