【问题标题】:Cannot destroy bootstrap modal data无法破坏引导模式数据
【发布时间】:2015-05-10 08:00:47
【问题描述】:
  • jQuery 1.11.2
  • 引导程序 3.1.1

这是我构建模态的方式:

    function fillModal(url, callback) {
        $(document).on('shown.bs.modal', '#modal', function(){
            $('#modal').find('.modal-content').load(url, function() {
                callback();
            });
        });
    }

这就是我试图摧毁它的方式。

   $(document).on('hidden.bs.modal', '#modal', function (e) {
        $('#modal').find('.modal-content').empty();
        $(this).find('.modal-content').empty();
        $(e.target).find('.modal-content').empty();
        $('#modal').data('modal', null);
        $('#modal').data('bs.modal', null);
        $('#modal').removeData('bs.modal');
        $('#modal').removeData('modal');
        $(this).data('bs.modal', null);
        $(this).data('modal', null);
        $(this).removeData('bs.modal');
        $(this).removeData('modal');
        $(e.target).data('modal', null);
        $(e.target).data('bs.modal', null);
        $(e.target).removeData('bs.modal');
        $(e.target).removeData('modal');
    });

上面的调用触发了,我已经尝试 EVERYTHING 来真正清除引导缓存的数据,但它根本不起作用。我已经单独尝试过每一个,我已经尝试过所有这些,我尝试过销毁整个模态 HTML 并重新添加它。

没有任何效果 - 模态的内容总是旧的两个或三个请求,有时内容会恢复到一个非常旧的请求。有时他们会是正确的。有时它们会在一瞬间正确,然后被缓存的数据覆盖....

我不知道出了什么问题。

在构建模式时,我可以应用“dontKeep”或“noCache”之类的设置吗?

【问题讨论】:

标签: javascript jquery twitter-bootstrap modal-dialog


【解决方案1】:

显然,当您调用 shown.bs.modal 时,它会在每次调用时将您的回调附加到堆栈中,而不是替换那里的内容。所以我第一次点击时,它会添加回调。我第二次点击时,它会在第一次点击时附加一个新的回调,第三次点击时,它会附加第三个等等......

这些回调然后按照它们恰好完成的顺序呈现内容,这就是内容看似随机出现的原因。

我通过简单地不将模式内容填充行为附加到shown.bs.modal 事件来解决此问题,而只是在单击时立即调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2022-01-05
    相关资源
    最近更新 更多