События драйвера Rails 3 UJS
По словам Симоне КарлеттиСообщение блогаRails 3 ajax помощники сильно изменились. Мы должны написать больше JavaScript с рельсами 3, чем мы привыкли с рельсами 2.
Я попытался выяснить, как показать gif загрузки ajax - пока выполняется запрос ajax - в «rails 3 way». Я придумал такой код, который использует события javascript, отправленные драйвером UJS Rails 3. Этот пример использует прототип:
<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 %>
Это хорошо работает, но я хотел бы, чтобы можно было написать эти «триггеры» событий ajax с помощью прототипа и помощников сценариев, как, например, когда мы используем функцию link_to_function:
<%=
link_to_function("toggle visibility") do |page|
page.toggle "wait"
end
%>
Есть ли способ сделать это, или мы должны написать ajax события «триггеры» непосредственно в javascript, либо прототип, либо jquery?
С наилучшими пожеланиями,
Филипп Ланг