42

我只想在用户单击关闭 btn 时关闭模式。正如我所见,我需要从 modal.js 覆盖这部分代码:

 hide: function (e) {
    e && e.preventDefault()

    var that = this

    e = $.Event('hide')//if I delete this line modal won't hide

    this.$element.trigger(e)

    if (!this.isShown || e.isDefaultPrevented()) return

    this.isShown = false

    $('body').removeClass('modal-open')

    escape.call(this)

    this.$element.removeClass('in')

    $.support.transition && this.$element.hasClass('fade') ?
      hideWithTransition.call(this) :
      hideModal.call(this)

我在正确的道路上吗?

4

7 回答 7

79

您可以定义模态行为,定义数据键盘和数据背景。

 <div id="modal" class="modal hide fade in" data-keyboard="false" data-backdrop="static">
于 2013-08-16T21:10:28.573 回答
73

当您启动模态时,您可以传递选项:

{
  keyboard: false,
  backdrop: 'static'
}

这将禁用通过单击背景和退出按钮关闭模式。或者可以将它们设置为data-属性。

于 2012-10-01T09:27:11.120 回答
11

试试这个

<div id="myModal" class="modal hide fade in" data-backdrop="static">
<div> </div>
</div>
于 2014-01-17T06:33:39.170 回答
10

在 Jquery 中实现它的最佳方法是:

<script type="text/javascript">
    $('#modal-id').modal({
        backdrop: 'static',
        keyboard: false
    });
</script>

或在 HTML 中:

<div id="modal-id" class="modal hide fade in" data-keyboard="false" data-backdrop="static">

但是,如果您已经初始化了模态,则需要像这样取消绑定模态的单击事件,例如:

<script type="text/javascript">
    //this remove the close button on top if you need
    $('#modal-id').find('.close').remove();
    //this unbind the event click on the shadow zone
    $('#modal-id').unbind('click');
</script>
于 2016-01-24T02:27:21.937 回答
3

您可以定义模态行为,定义数据键盘和数据背景。

<div id="modal" class="modal hide fade in" data-keyboard="false" data-backdrop="static">

此外,它也适用于 ASPX Pages。

于 2019-07-11T08:26:06.130 回答
2
<script type="text/javascript">
    $('#myModal').modal({
      backdrop: 'static',
      keyboard: false
    })
</script>
于 2014-09-29T13:18:33.863 回答
1

您可以使用 no-close-backdrop

<div id="modal" class="modal hide fade in" no-close-on-backdrop no-close-on-keyboard>
于 2020-09-17T06:36:23.547 回答