获取JQuery之前发送并完成在Rails 3中工作

时间:2011-08-09 22:16:50

标签: jquery ajax ruby-on-rails-3

我正在努力实施此post中概述的解决方案,但无法使其发挥作用。

application.js

$(document).ready(function(){
    $.ajaxSetup({
      beforeSend:function(){
          $('#loading').show();
        },
      complete:function(){
          $('#loading').hide();
        }
    });
});

application.html.erb

  <div id="loading" style="display:none;"><img src="/img/ajax-loader-circle.gif" ></br></br>Please wait...</div>

从我的表单中,我添加了:remote => true,我可以看出是在查看Rails日志时发出了一个AJAX调用。但是,beforeSend show从未被触发过。想法?

1 个答案:

答案 0 :(得分:2)

我建议使用:

$('#loading').ajaxStart(function(){
  $(this).show();
}).ajaxStop(function(){
  $(this).hide();
});

或者如果您想要特定的表单ID:

$('#someFormID')
.ajaxStart(function() {
    $('#loading').show();
})
.ajaxStop(function() {
    $('#loading').hide();
});

确保它包装在DOM就绪块中(就像你已经完成的那样)。这些都是我的一个应用程序的工作示例。