Як увімкнути функцію закриття ключа для втечі в режимі завантаження Twitter?


132

Я дотримувався інструкцій щодо модального завантаження Twitter на головній сторінці документації
та використовував data-keyboard="true"згаданий синтаксис, але клавіша виходу не закриває модальне вікно.
Чи ще чогось мені не вистачає?

Код:

<a href="#my-modal" data-keyboard="true" data-toggle="modal">Open Modal</a>

<div class='modal fade hide' id='my-modal'>
  <div class='modal-body'>
    <div>Test</div>
  </div>
</div>

2
Це ввімкнено за замовчуванням
Adam F

Відповіді:


301

Схоже, це питання про те, як пов'язана подія клавіатури.

Ви можете додати tabindexатрибут до вас модально, щоб подолати цю проблему:

tabindex="-1"

Отже, ваш повний код повинен виглядати так:

<a href="#my-modal" data-keyboard="true" data-toggle="modal">Open Modal</a>

<div class='modal fade hide' id='my-modal' tabindex='-1'>
    <div class='modal-body'>
    <div>Test</div>
    </div>
</div>

Для отримання додаткової інформації ви можете переглянути дискусію з цього питання на github

(Оновлено посилання на новий сховище TWBS)


3
Це, однак, запобігає автофокусу від полів введення.
топлес

3
Ви також можете додати атрибут клавіатури даних до свого div.modal (і опустити його у абонентів), якщо ви почнете відкривати діалогове вікно з кількох місць.
Віталік Верховодов,

2
Як @nrek зазначає нижче - закриття з втечею є істинним за замовчуванням, тому вам не потрібно суворо data-keyboard="true"- це те, tabindex="-1"що дозволяє поведінку
Лев

Я можу підтвердити, що це рішення працює в Bootstrap 4. Я не знаю, чому воно не працює за замовчуванням, як кажуть документи.
Веб

Причому data-keyboardналежить модальному елементу, а не контролеру. Це можна перевірити, встановивши його на false.
WoodrowShigeru

23

також якщо ви викликаєте через javascript, використовуйте це:

$('#myModal').modal({keyboard: true}) 

15
це раніше було єдиним, що вам довелося робити, але тепер вам також потрібно переконатися, що у вашому div є атрибут 'tabindex = "- 1"'.
Бала Кларк

1
Мені залишилося лише встановити індекс вкладки.
weltschmerz

@dchacke це тому, що властивість клавіатури за замовчуванням відповідає істині! тому просто встановіть tabindex = '- 1'
nrek

12

додати tabindex="-1"атрибут до модального діла

<div id="myModal" class="modal fade" role="dialog" tabindex="-1">

</div>

3

У кутовому я використовую так:

var modalInstance = $modal.open({                        
 keyboard: false,
 backdrop: 'static',
 templateUrl: 'app/dashboard/view/currentlyIneligibleView.html',
 controller: 'currentlyIneligibleCtrl',
 resolve: {
     data: function () { return param; }
    }
});
  • backdrop: 'static' => Зупинити, щоб закрити клацання зовні
  • клавіатура: false => Зупинити, щоб закрити, використовуючи кнопку втечі

-1

Завантаження 3

У HTML просто встановіть data-backdropстатичну та data-keyboardхибну

Приклад:

<button type="button" data-toggle="modal" data-target="#myModal" data-backdrop="static" data-keyboard="false">Launch modal</button>

або

$('#myModal').modal({
  backdrop: 'static',
  keyboard: false
}) 

Тест наживо:

https://jsfiddle.net/sztx8qtz/

Знай більше: http://budiirawan.com/prevent-bootstrap-modal-closing/


У вашому прикладі не ввімкнено ключ втечі
Веб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.