jquery - 如何通过 $.get 使用图像加载器

标签 jquery

如何通过 $.get 使用图像加载器 当我用 $.get 进行 ajax 调用时,有时需要 几秒钟后效果才会发生。 我怎样才能放置一个加载程序以便用户知道要等待 直到数据加载完毕?

谢谢

编辑:

$.ajax({
    url: 'ajax.php',
    type: 'GET',
    dataType: 'json',
    data: 'shipping=' + sval,
    onBeforeSend: function()
    {
        $("table#cart tbody tr#line_top td ul#total li#shipping span").html("<img src='images/spinner.gif'>");
    },

    complete: function()
    {

    },

    success: function(out)
    {
        getShippingPrice = out.shippingPrice;
        getTotalPrice = out.cartTotal;
        $("table#cart tbody tr#line_top td ul#total li#shipping span").html(getShippingPrice);
        $("table#cart tbody tr#line_top td ul#total li#total span").html(getTotalPrice);
    }
});

编辑2:

<script type="text/javascript">

var getShippingPrice;
var getTotalPrice;

$(document).ready(function() {
    $(".shipmethod").change(function() {
        sVal = $(this).val();
        $.ajax({
            url: "ajax.php",
            type: "GET",
            dataType: "json",
            data: "shipping=" + sVal,

            beforeSend: function()
            {
                $('.ajaxSpinner').show();
            },

            complete: function()
            {
                $('.ajaxSpinner').hide();
            },

            success: function(out)
            {
                getShippingPrice = out.shippingPrice;
                getTotalPrice = out.cartTotal;
                $("table#cart tbody tr#line_top td ul#total li#shipping span").html(getShippingPrice);
                $("table#cart tbody tr#line_top td ul#total li#total span").html(getTotalPrice);
            }
        });
    });
});

</script>

最佳答案

你有两种可能性。

要么使用完整的 $.ajax()为您提供更多功能的方法:

$.ajax({
    url: '/foo.cgi',
    type: 'GET',
    beforeSend: function() {
        // TODO: show your spinner
        $('#ajaxSpinner').show();
    },
    complete: function() {
        // TODO: hide your spinner
        $('#ajaxSpinner').hide();
    },
    success: function(result) {
        // TODO: handle the results
    }
});

或使用$.ajaxSetup()为所有 ajax 请求提供全局设置 Hook 的方法:

$.ajaxSetup({
    beforeSend: function() {
        // TODO: show your spinner
        $('#ajaxSpinner').show();
    },
    complete: function() {
        // TODO: hide your spinner
        $('#ajaxSpinner').hide();
    }
});

然后做你的$.get()像往常一样:

$.get('/foo.cgi', function(result) {
    // TODO: handle the results
});

关于jquery - 如何通过 $.get 使用图像加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689114/

相关文章:

jquery - 如何使用 jQuery 使 span 元素从图像后面滑出?

javascript - appendTo 不适用于移动设备

javascript - jQuery.kinetic - 如何在页面加载时预滚动到某个位置

jquery - 使 div 平滑变大并查看其他内容,切换

javascript - 在数据表上实现服务器端分页

javascript - 元素没有外宽?

javascript - 修改与 jQuery X-Editable 库一起使用时 Select2 下拉选择的输出

javascript - 删除确认对话框在第一次单击时不起作用

javascript - 添加动态文本到 anchor 链接 URL 查询

jquery - 将两列对齐到正确的位置