使用Coffeescript隐藏rails </div>中的<div>

时间:2012-04-12 21:43:17

标签: jquery ruby-on-rails coffeescript

我有一个通过调用部分

呈现的项目列表
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(“&lt;%= escape_javascript(render(:partial =&gt;   @items))%&gt;“)

我的问题:我想隐藏特定的项目DIV,而不是重新渲染页面上的所有项目(为什么?因为我觉得编码更好)。

我该怎么做?我尝试将@item_id传递给coffeescript,并执行类似

的操作
$('item_id'+@item_id).hide

但是从阅读这里看来,这似乎是错误的方式。

谢谢!

2 个答案:

答案 0 :(得分:1)

要简单地隐藏div,请将其放在disable.js.coffee文件中:

$("#item_id_<%= item.id %>").hide()

答案 1 :(得分:0)

为什么不为每个子#items类提供父.item div,然后按$('#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>