42

ユーザーが閉じるボタンをクリックしたときにのみモーダルを閉じたい。ご覧のとおり、コードのこの部分を 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

data-keyboard と data-backdrop を定義して、モーダル動作を定義できます。

 <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 に答える
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 に答える
2
<script type="text/javascript">
    $('#myModal').modal({
      backdrop: 'static',
      keyboard: false
    })
</script>
于 2014-09-29T13:18:33.863 に答える