【发布时间】:2010-10-14 13:19:47
【问题描述】:
根据 Simone Carletti blog post 的说法,Rails 3 ajax 助手发生了很大变化。我们应该用 rails 3 编写比使用 rails 2 更多的 javascript。
我试图弄清楚如何在“rails 3 方式”中显示 ajax 加载 gif - 同时 ajax 查询正在运行。我想出了这种代码,它使用 Rails 3 UJS 驱动程序发送的 javascript 事件。本例使用原型:
<div id="wait" style="display:none">
<img src="/images/ajax-loader.gif"> Please wait...
</div>
<div>
<%= link_to 'Get', 'finished', :id => "mylink", :remote => true %>
</div>
<%= javascript_tag do %>
Event.observe('mylink', 'ajax:before', function(event) {
$('wait').show();
});
Event.observe('mylink', 'ajax:complete', function(event) {
$('wait').hide();
});
<% end %>
这很好用,但我希望可以在原型和 scriptaculous 助手的帮助下编写这些 ajax 事件“触发器”,就像我们使用 link_to_function 时一样:
<%=
link_to_function("toggle visibility") do |page|
page.toggle "wait"
end
%>
有没有办法做到这一点,或者我们应该直接在 javascript 中编写 ajax 事件“触发器”,无论是原型还是 jquery?
最好的问候,
菲利普·朗
【问题讨论】:
标签: ruby-on-rails ajax prototypejs ujs