0

我试图在执行 rjs 时删除具有最旧 updated_at 值的对象。

page.insert_html :top, :messages, :partial => @message
page[@message].visual_effect :grow
page[:message_form].reset
Message.old_messages.each do |m|
  page.remove(m.id)
end
page.delay(1) do 
  page.select('.message').last.visual_effect :fade
end

我现在在那里使用 .last ,但我在视图中有一个周期性调用远程,它不断更新和运行上面的 rjs。该行:

page.select('.message').last.visual_effect :fade

似乎只执行第一次,因为在“最后一个”消息消失后​​,没有任何东西被识别为“最后一个”,所以我想而不是调用 .last 我可以找到具有最旧 updated_at 时间戳的对象并删除它反而。我在想我可能无法使用 page.select 来做到这一点,因为它只调用 css 元素。因此我可能无法访问 Message 模型中的 updated_at 值。有人对如何使用 rjs 完成删除最旧的消息有任何建议吗?在创建新消息时,这些消息已在模型中自动删除。但我希望它们在 RJS 刷新元素时自动淡出。

4

1 回答 1

1

您的解决方案可以像删除您褪色的元素一样简单。

我的猜测是淡入淡出视觉效果隐藏了元素,但不会将其从 DOM 中删除,所以最终发生的事情是你将继续淡化同一个元素,这显然不会做任何事情。

于 2010-03-11T05:56:58.937 回答