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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage