javascript - 如何多次添加/删除类?

标签 javascript jquery html css ajax

当用户通过 ajax 发送数据时,我想通过 CSS 在我的页面上显示一个加载图标,然后在 ajax 调用完成后删除这个加载图标。该页面成功显示了一次图标,但没有页面刷新就不会再次显示该图标。但是,对于多个调用,ajax 调用已成功完成。这是我的代码:

相关的 HTML:

<head>
<link rel="stylesheet" href="~/Content/Loading.css" type="text/css&quot; id="loading_gif"/>
</head>
...
...
<button type="button" class="btn btn-success" id="button">Import</button>
...
...
<div class="modal"><!-- Placed at bottom of page --></div>

Ajax :

$(document).ready(function () {
    $('#button').click(function () {                        
        $.ajax({
            type: "POST",
            url: '@Url.Action("Submit")',
            data: { 
              //submit data via jQuery 
            },
            dataType: 'json',
            beforeSend: function() {
                $body.addClass("loading");                        
            },
            success: function (data) {                        
                //render a partialView                    
            },
            complete: function () {
                $body.removeClass("loading");
            }
        });                
    });
}(jQuery));

CSS:

.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: rgba( 128, 128, 128, .5 ) url('../img/ajax-loader-bar.gif') 50% 50% no-repeat;
}

/* When the body has the loading class, we turn
the scrollbar off with overflow:hidden */
body.loading {
  overflow: hidden;
}

/* Anytime the body has the loading class, our
modal element will be visible */
body.loading .modal {
  display: block;
}

最佳答案

ajax 调用的全局设置

看看这个答案:https://stackoverflow.com/a/2387709/3298029

这是添加和删除加载类的 fiddle : http://jsfiddle.net/0fpdud5h/

jQuery.ajaxSetup({
  beforeSend: function() {
     body.addClass('loading');
  },
  complete: function(){
     body.removeClass('loading');
  },
  success: function() {}
});

它在这个 fiddle 上触发了多次。 希望这能让您入门。

关于javascript - 如何多次添加/删除类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36158860/

相关文章:

javascript - 多复选框过滤、JavaScript 和 jQuery

javascript - 如何通过 JavaScript 计算 HTML 正文中的选定单词

javascript - 在 D3js 甘特图中的栏上添加工具提示

php - 文本未正确放置在中心

javascript - 在继续循环之前让 SetTimeout 完成

javascript - 无法使用Vue.js从opendweathermap获取天气数据

javascript - Visual Studio - Javascript UWP - 通过矢量图形的视觉 Assets

javascript - 重新排序对象数组

PHP $_POST 不通过 h​​tml 表单保存在 mysql 上

html - 静态图像。不随页面大小移动