javascript - 在 Bootstrap 模式顶部显示 "busy wait"

标签 javascript css twitter-bootstrap

我正在为 ajax 调用使用“忙等待”:

$(document).ajaxStart(function () {
    $("#wait").css("display", "block");
});
$(document).ajaxComplete(function () {
    $("#wait").css("display", "none");
});
<div id="wait" style="display:none;width:62px;height:62px;position:absolute;top:25%;left:48%; border: 1px solid #2E5C2E;">
<img src='ajax-loader.gif' width="60" height="60"/>

我的页面执行两个 ajax 调用:

  1. 模态不可见
  2. 当模式可见时

当模式不可见时,“忙等待”工作正常。但是,当我打开模式并执行 ajax 调用时,“忙等待”隐藏在模式后面。如果我改变模式外的绝对位置,我就能看到忙碌的等待。

我尝试修改模态 (z-index:990) 和“忙等待”(z-index) 的 z-index : 999),但是这样做只会使整个页面变灰,因为现在“忙等待”div 位于顶部。但是,如果我删除 z-index 属性或将其设置为 autoinherit 模态,则“忙等待”会转到模态。

如何确保“忙等待”始终位于最前面而不会使其他任何内容变灰?

JSFiddle:https://jsfiddle.net/81ssrrfj/2/

尝试从模态内点击“open Busy Wait”,您会看到“busy wait”隐藏在模态后面(您可能必须更改 busy wait 的绝对位置,使其在模态下方)

最佳答案

最好的解决方案是找到打开模式的 z-index 并将相同的 value + 1 应用于“等待”图标:

function show_loading() {
    var zIndex = 999;

    if ($('body').hasClass('modal-open')) {
        zIndex = parseInt($('div.modal').css('z-index')) + 1;
    }

    $("#wait").css({
        'display': 'block',
        'z-index': zIndex
    });

    setTimeout(function(){$("#wait").css("display", "none");}, 5000);
};

关于javascript - 在 Bootstrap 模式顶部显示 "busy wait",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871932/

相关文章:

无法在函数内部访问 JavaScript 全局变量

javascript - 动态更改 jQuery 移动图标背景颜色

html - 缩放页面后缺少边框

php - 加载页面时,我在 PHP 中进行服务器端验证

html - 如何在 Bootstrap 3 中显示响应式折叠图标?

javascript - 成功或错误消息输入 javascript bootstrap

html - 将 CSS 链接到 HTML 文件 : Path specification

javascript - 获取类设置为col-md-7但未设置宽度的div的宽度

javascript - Bootstrap表无法获取数据

javascript - 将 TypeScript 对象传递给 Electron 应用程序中的 Window