销毁Bootstrap模态

时间:2016-07-09 17:06:27

标签: jquery twitter-bootstrap-3 bootstrap-modal

我想在关闭/隐藏时销毁Bootstrap模式,并且每次重新打开新内容时。我试图在.net中实现这一点。请在将此标记为重复之前阅读。

在我的母版页中, 模态标记为

<div id="modal" class="modal fade">
        <div class="modal-dialog" role="dialog">
            <div class="modal-content" data-backdrop="static">
                <div id="modalContent">
                </div>
            </div>
        </div>
    </div>

打开模式的代码

 $("a[data-modal]").on("click", function (ev) {
                BlockPage("Loading Dialog");
                $("#modalContent").load(this.href, function () {
                    $("#modal").modal({
                        cache:false,
                        backdrop: 'static',
                        keyboard: false
                    }, "show");
                });
                ev.preventDefault();
                return false;
            });        

在我的aspx页面中,我有以下代码打开模式,如下所示。

<a runat="server" id="lnkAssignInformed" data-modal="" class="btn btn-info hidden-print assignInformed">Assign Informed</a>&nbsp;

对于显示和隐藏的事件,我有以下代码。对于隐藏的事件,为了摧毁模态我按照这篇文章中的答案回答。 Stackoverflow Post

  $("#modal").on('show.bs.modal', function (e) {
                $(this).find('.modal-body').css({
                    width: 'auto',
                    height: 'auto',
                    'max-height':'100%'
                });               
            });

            $('body').on('hidden.bs.modal', '#modal', function () {                                
                $('#modal').removeData('bs.modal');
            });

问题是甚至在试图破坏隐藏事件的模态后,当我重新打开模态时,我仍然看到模态中的数据在第一次打开时显示。

我也尝试了以下代码,但没有看到任何差异。

 $("#modal").on('hide.bs.modal', function () {
                $('#modal').data('bs.modal', null);
            });

我目前正在IE-11中尝试此操作。 Haven未在其他浏览器中测试过。

有没有什么办法可以在每次点击锚标记时触发加载?任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我能够自己解决这个问题。问题在于Jquery.load()缓存结果。我能够使用以下代码销毁缓存。在此之后,对话框每次都会显示新内容。

 $("a[data-modal]").on("click", function (ev) {
            BlockPage("Loading Dialog");
            $("#modalContent").load(this.href,'f' + (Math.random()*1000000), function () {
                $("#modal").modal({
                    cache:false,
                    backdrop: 'static',
                    keyboard: false
                }, "show");
            });
            ev.preventDefault();
            return false;
        });