javascript - jQuery - 从下拉列表中更改选项时显示加载符号

标签 javascript jquery ajax load

我有以下选择菜单:

<select name="period" id="stats-period">
        <option value="all">All time</option>
        <option value="360">12 months</option>
        <option value="270">9 months</option>
        <option value="180">6 months</option>
        <option value="90">3 months</option>
        <option selected="selected" value="30">30 days</option>
        <option value="7">7 days</option>
    </select>

当我从下拉列表中选择一个选项时,我会执行 ajax 调用,以便从数据库中获取正确的记录,所以这是我的脚本:

function timePeriod(changePeriod) {

                var url = '<?= admin_url('reports/change_period') ?>';

                $.post(url, {period: changePeriod}, function (response) {

                    var json = $.parseJSON(response);

                    if (json.error == true) {
                        $('#reports').hide();
                        $('#no-reports').show();
                    } 
                    else {
                        $('#reports').show();
                        $('#no-reports').hide();

                        $('#numprojects').text(json.projects);
                        $('#average-cost').text(json.average_cost.toFixed(2));
                        $('#over-budget').text(json.over_budget);
                        $('#average-client-flags').text(json.average_client_flags);
                        $('#average-delayed').text(json.average_delayed.toFixed(1));
                    }
                });
            }

            $('#stats-period').on('change', function(){
                var selected = $(this).val();
                timePeriod(selected);
            });

我不想做的是在更改下拉列表的选定值时显示加载符号,直到 ajax 调用完成,我该怎么做?

最佳答案

假设您的加载 gif 位于 ID = #myDiv

的 div 内
function timePeriod(changePeriod) {

    var url = '<?= admin_url('reports/change_period') ?>';

    $('#myDiv').show();

    $.post(url, {period: changePeriod}, function (response) {

        $('#myDiv').hide();

        var json = $.parseJSON(response);

        >SNIP<

关于javascript - jQuery - 从下拉列表中更改选项时显示加载符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850195/

相关文章:

javascript - 我怎样才能隐藏卡片?

javascript - 函数式编程中的引用透明性

javascript - 使用 setTimeout 在指定时间执行函数

javascript - javascript 数组对象的问题

jquery - TableSorter + AJAX从MySQL获取数据

javascript - 为什么 jQuery Colorbox 在 Mozilla Firefox 中正常运行,但在以下情况下无法在 Google Chrome 中正常运行?

javascript - 滚动到 div 的底部?

jquery - Rails 3.1 AJAX 表单 - "ActionView::Template::Error (undefined method ` gsub' for #<ActionDispatch::Flash::FlashHash:0x00000102b73b78>):"

ajax - 以编程方式安全地将数据发布到 https 端点,无需浏览器

JQuery.UI.Tabs默认通过TabID选择