Simone Carletti のブログ投稿によると、Rails 3 の ajax ヘルパーは大幅に変更されています。Rails 3 では、Rails 2 で使用していたよりも多くの JavaScript を記述する必要があります。
「Rails 3 way」で、ajax クエリの実行中に ajax 読み込み gif を表示する方法を見つけようとしました。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 %>
これはうまく機能しますが、たとえば link_to_function を使用するときのように、プロトタイプと scriptaculous ヘルパーの助けを借りて、これらの ajax イベントの「トリガー」を記述できればと思います。
<%=
link_to_function("toggle visibility") do |page|
page.toggle "wait"
end
%>
それを行う方法はありますか、それともプロトタイプまたはjqueryのいずれかで、javascriptでajaxイベントの「トリガー」を直接記述することになっていますか?
よろしくお願いします、
フィリップ・ラング