Подтвердить что ты не робот

Как закрыть Bootstrap modal только тогда, когда пользователь нажимает на близкое изображение?

Я хочу закрыть модальный ТОЛЬКО, когда пользователь нажимает на close 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)

Я на правильном пути?

4b9b3361

Ответ 1

Когда вы запускаете свой модальный вариант, вы можете передать параметры:

{
  keyboard: false,
  backdrop: 'static'
}

который отключит закрытие модальности, щелкнув по фону, и кнопку escape. Или они могут быть установлены как атрибуты data-.

Ответ 2

Вы можете определить свое модальное поведение, определяя данные клавиатуры и фона данных.

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

Ответ 3

Попробуйте этот

<div id="myModal" class="modal hide fade in" data-backdrop="static">
<div> </div>
</div>

Ответ 4

Лучший способ сделать это в 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">

Но если вы уже инициализировали модальный, вам нужно отменить событие click вашего модального типа, например:

<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>

Ответ 5

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

Ответ 6

Вы можете определить свое модальное поведение, определяя данные клавиатуры и фона данных.

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

И более того, это также работает в ASPX Pages.