以下是我构建模态的方法:
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”等设置?
答案 0 :(得分:0)
显然,当您拨打shown.bs.modal
时,它会在每次调用时将您的回调附加到堆栈,而不是替换其中的内容。所以我第一次点击它会添加回调。我第二次点击它,它会向第一个附加一个新回调,第三次点击,它会附加第三个等...
那些回调然后按照它们碰巧完成的顺序呈现内容,这就是为什么内容看起来似乎随机出现的原因。
我解决了这个问题,只是不将模态内容填充行为附加到shown.bs.modal
事件,只需在点击后立即调用它。