javascript - Bootstrap 模式隐藏不适用于 jquery ajax

标签 javascript jquery

我有一个用 bootstrap 制作的模式对话框,如下所示:

<div class="modal fade" id="myid">
  <div class="modal-dialog">
    <div class="modal-content">
       Loading...
    </div>
  </div>
</div>

我制作了一个像这样的 JavaScript 函数:

$(document)
            .ajaxStart(function () {
                $('#myid').modal('show');
            })
            .ajaxStop(function () {
                $('#myid').modal('hide');
            });

但是当我调用一些ajax函数时,模式会出现但不会隐藏。我将 console.log 放入两个函数(ajaxStart 和 ajaxStop)中并调用它。当我如下替换 ajaxStop 时,一切正常,但显示不正确。

$(document)
                .ajaxStart(function () {
                    $('#myid').modal('show');
                })
                .ajaxStop(function () {
                    $('#myid').hide();
                    $('.fade').hide();
                });

主要问题是当我在ajax中调用另一个模态时,然后单击链接,出现加载ajax,请求发送到服务器,响应返回,出现带有请求数据的模态,但加载模态不隐藏。

如何修复它?

最佳答案

您必须设置超时。 这对我有用:

setTimeout(function () { $("#myid").modal("hide"); }, 500);

关于javascript - Bootstrap 模式隐藏不适用于 jquery ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51585703/

相关文章:

jquery - 基于类禁用表 tr td

javascript - 所有内容异步加载后捕获页面

jquery - 以编程方式检测文本区域值更改

javascript - 无法使用 Link 来 console.log 属性

javascript - IsGenerator 实现

javascript - 匹配不包含特定模式的特定字符串

jquery - 如何向刚刚添加的 jQuery 元素添加事件?

jquery 脚本(onchange 方法)在将部分 View 作为 ajax 返回后不起作用

JavaScript:使用公共(public)方法和私有(private)方法对数组求和

javascript - 在 cesium.js 中加载 gltf 模型