我有一个通过调用部分
呈现的项目列表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
但是从阅读这里看来,这似乎是错误的方式。
谢谢!
答案 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>