根据 Simone Carletti的博客文章,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?
最好的祝福,
菲利普·朗