显示“loading ...”文本 - 文档中所有div只有一个jquery.ajaxSend()

时间:2013-01-09 04:30:27

标签: javascript ajax jquery

如何在调用jquery.load()的div中显示“loading ...”文本。

$(document).ready(function()
{
    //only one ajaxSend for all divs
    $(document).ajaxSend(function()
    {
        $(this).html('LOADING...'); //'this' doesn't works
    });

    //...

    $("#ranking-content").load("content/ranking.php");
    $("#empleados-content").load("content/empleados.php");
    //... more and more

});

在ajaxSend回调中,如何获取发出该ajax请求的div的ID?

我确信有一个更好的方法,而不是每个div做一个ajaxSend。

1 个答案:

答案 0 :(得分:3)

要自定义特定div的行为,请使用ajax功能:

定义beforeSend(在ajax调用之前运行的脚本)和context(HTML元素):

$.ajax({
  context: $('#ranking-content'),
  url: 'content/ranking.php',
  beforeSend: function (xhr) {
    $(this).html('Loading');
  }
}).done(function (data) {
  $(this).html(data);
});

不需要使用此ajaxSend。您可以通过将参数与ajax合并到调用者提供的设置来重复使用此代码。