【问题标题】:Bootstrap modal bug after manual hide手动隐藏后的引导模式错误
【发布时间】:2014-03-20 12:39:14
【问题描述】:

我试图确保每次显示模式对话框时都没有可见的对话框。为了做到这一点,我正在做:

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

但是这样做,当我显示一个模态对话框时:

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

如果我单击背景(背景)或按退出键,模式将关闭。 当我删除 .modal('hide') 时,代码运行良好,模式仅从“关闭”按钮关闭。

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

<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/click 关闭。注释 $('.modal').modal('hide') 代码效果很好!

【问题讨论】:

  • 你的代码运行良好,是别的...bootply.com/123366
  • 对话框显示良好,但我需要对话框仅使用“关闭”按钮关闭。使用此代码,如果单击背景或按 esc 键,对话框将关闭。但是如果删除 $('.modal').modal('hide'),代码运行良好并且对话框不会关闭。

标签: javascript jquery twitter-bootstrap modal-dialog


【解决方案1】:

这是因为每次你想调用它时都要重新初始化模态......

所以先初始化模态而不显示它们。

引导层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和给定的一样

【讨论】:

  • 谢谢,我担心Bootstrap有bug,总比框架大哥犯错要受苦
猜你喜欢
  • 1970-01-01
  • 2015-10-29
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
  • 2018-02-06
  • 1970-01-01
相关资源
最近更新 更多