【问题标题】:Problems getting AJAX effect to work with RubyOnRails使 AJAX 效果与 RubyOnRails 一起使用时出现问题
【发布时间】:2009-07-24 17:43:08
【问题描述】:

我想从由某些 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 中的表格上也不起作用,所以我在这里可能不走运。

【问题讨论】:

    标签: ruby-on-rails ajax scriptaculous


    【解决方案1】:

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

    【讨论】:

    • 我试过了,还是不行。这是生成的 HTML... 删除
    【解决方案2】:

    你是否包含了默认的 JS 库?

    <%= javascript_include_tag :defaults %>
    

    【讨论】:

    • 奇怪...好吧,我已经设法在 TR 上进行了滑动,所以这是可能的。
    【解决方案3】:

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

    【讨论】:

    • 和 rails 2.x 使用原型,而不是 jquery
    • 我知道这不是 jquery,但我认为解释为什么它在 JQuery 中不起作用也可以解释为什么它对我不起作用。如果您能分享一个工作示例,说明如何让它为您的桌子工作,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 2011-05-04
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多