Rails 3 UJS-Treiberereignisse
aut Simone CarletBlogeintra, Rails 3 Ajax Helfer haben sich sehr verändert. Wir sollen mit Rails 3 mehr Javascript schreiben als mit Rails 2.
Ich habe versucht herauszufinden, wie ein Ajax-Ladevorgang angezeigt wird, während eine Ajax-Abfrage ausgeführt wird. Ich habe mir diese Art von Code ausgedacht, der vom Rails 3 UJS-Treiber gesendete JavaScript-Ereignisse verwendet. In diesem Beispiel wird der Prototyp verwendet:
<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 %>
Dies funktioniert gut, aber ich wünschte, es wäre möglich, diese Ajax-Ereignisse mit Hilfe des Prototyps und skriptbasierter Helfer zu schreiben, so wie wir es zum Beispiel mit link_to_function tun:
<%=
link_to_function("toggle visibility") do |page|
page.toggle "wait"
end
%>
Gibt es eine Möglichkeit, dies zu tun, oder sollen wir Ajax-Ereignisse "Trigger" direkt in Javascript schreiben, entweder als Prototyp oder als Abfrage?
Freundliche Grüße
Philippe Lang