0

我的请求 ajax 不调用函数来显示加载的 gif,我使用示例 ajax 申请,我的 js 是:

$("#carregar").bind("ajax:loading", function(et, e){
    $(this).hide();
    $("#load_img").show();
});

我正在使用 controller.js.erb 的示例方法并加载内容,但没有出现 gif,请问这是怎么回事?谢谢

4

2 回答 2

2

ajax:loading是由旧版本的 jquery-rails 附带的 JS 驱动程序触发的事件。它已经被改变了。如果您使用的是更新版本的 Rails,那么您应该绑定到ajax:beforeSend事件。

其他需要考虑的事项:

1)ajax:beforeSend事件处理程序应绑定到触发 AJAX 请求的元素,很可能是 FORM 元素。

2) 使用 jQuery .bind() 时,目标元素需要存在于 DOM 中。在绑定事件处理程序之前确保加载 DOM 的一种简单方法是将脚本包装在文档就绪回调中。

$(document).ready(function(){
  $("#carregar").bind(...)
})

3) Arun 关于使用 ajaxStart 的建议有助于显示和隐藏 ajax 加载指示器。

// Show and hide the indicator for every AJAX request.

$(document).ajaxStart(function(){
  $("#load_img").show();
});

$(document).ajaxStop(function(){
  $("#load_img").hide();
});
于 2013-01-16T15:38:13.377 回答
0

有关触发的事件,请参阅jQuery 文档

尝试绑定ajax:before事件而不是ajax:loading.

于 2013-01-16T09:59:34.927 回答