使用RubyOnRails获得AJAX效果的问题

时间:2009-07-24 17:43:08

标签: ruby-on-rails ajax scriptaculous

我想从某些Rails代码生成的HTML表中删除一行,我希望其他行“向上滑动”到新位置。

我对此很陌生,我确信我可能犯了一个简单的错误。

以下是生成表格行的部分代码:

<tr id="ride_<%=h ride.id %>">
  <td><%=h ride.name %></td>
  <td><%=h ride.land %></td>
  <td align="right"><%=h ride.height_restriction %></td>
  <td><%= link_to_remote 'remove', :url => { :action => :destroy, :ride_id => ride.id }, :html => {:onclick => "Effect.SlideUp('ride_" + ride.id.to_s + "')"} %></td>
</tr>

这是从该部分生成的HTML:

<tr id="ride_130">
  <td>thrill ride</td>
  <td>fun land</td>
  <td align="right">40</td>
  <td><a href="#" onclick="Effect.SlideUp('ride_130'); new Ajax.Request('/SimpleRailsApp/rides/destroy?ride_id=130', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('9f2334b84d2da7eddfbfaadf8138c0a1c8feca47')}); return false;">remove</a></td>
</tr>

现在,该行删除正常,但我没有得到很酷的AJAX效果。它只是“快照”了。

到目前为止,“Puff”是我能够完成工作的唯一效果。

任何帮助或建议都将不胜感激。

更新

可能是这个效果在表元素内部不起作用吗?我在无序列表上尝试了几乎所有的代码,它似乎工作正常。

我也发现这个other question表示动画也不能用于jQuery中的表格,所以我可能在这里运气不好。

3 个答案:

答案 0 :(得分:0)

由于动画是“捕捉”,您可能想尝试添加持续时间选项: Effect.SlideUp('id_of_element', { duration: 3.0 });

答案 1 :(得分:0)

您是否包含默认的JS库?

<%= javascript_include_tag :defaults %>

答案 2 :(得分:0)

我发现this other Stack Overflow answer to a question表示动画在jQuery中的表格也不起作用,所以我可能在这里运气不好。