手动隐藏后的Bootstrap模态错误

时间:2014-03-20 12:39:14

标签: javascript jquery twitter-bootstrap modal-dialog

我试图确保每次显示模态对话框时都没有可见的对话框。为此,我正在做:

$('.modal').modal('hide');

但是当我用:

显示模态对话框时这样做
var dlg_opts = { show: true, keyboard: false, backdrop: 'static' };

如果我点击背景(背景)或按下转义,模态将关闭。 当我删除.modal(' hide')时,代码效果很好,而模式只能从' close'按钮。

我的模态窗口有一个例子:

<div class="modal fade" id="dlgWarning" tabindex="-1" role="dialog" aria-labelledby="dlgWarningLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="dlgWarningLabel"></h4>
            </div>
            <div class="modal-body">

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                <button type="button" class="btn btn-warning" id="btnWarningAccept"></button>
            </div>
        </div>
    </div>
</div>

这是对话框的代码:

var dlg_opts = { show: true, keyboard: false, backdrop: 'static' };

function ShowModal(id, width) {
    CloseModal();

    id = '#' + id;
    $(id).modal(dlg_opts);

    if (arguments.length == 2) $(id).css('width', width + 'px');
}

function CloseModal() {
    $('.modal').modal('hide');
}

任何人都知道它会是什么? 非常感谢!

编辑:

您可以在这里测试一下:http://www.bootply.com/123369 如果您尝试此操作,您将看到对话框以背景上的esc /单击关闭。评论$(&#39; .modal&#39;)。模式(&#39;隐藏&#39;),代码效果很好!

1 个答案:

答案 0 :(得分:2)

这是因为你每次想要调用它时重新启动模态......

首先在不显示模式的情况下初始化模态。

Bootply http://www.bootply.com/123372

JS

var dlg_opts = { show: false, keyboard: false, backdrop: 'static' };  // <-- HERE
$('.modal').modal(dlg_opts);                 // <-- HERE

function ShowModal(id, width) {
    CloseModal();

    id = '#' + id;
    $(id).modal('show');       // <-- HERE

    if (arguments.length == 2) $(id).css('width', width + 'px');
}

function CloseModal() {
    $('.modal').modal('hide');
}

$(document).ready(function(){
  ShowModal('dlgWarning');
});

HTML 与给定的

相同