无法破坏引导模态数据

时间:2015-03-09 07:56:08

标签: javascript jquery twitter-bootstrap modal-dialog

  • jQuery 1.11.2
  • Bootstrap 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”等设置?

1 个答案:

答案 0 :(得分:0)

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

那些回调然后按照它们碰巧完成的顺序呈现内容,这就是为什么内容看起来似乎随机出现的原因。

我解决了这个问题,只是不将模态内容填充行为附加到shown.bs.modal事件,只需在点击后立即调用它。