Я создаю модуль Bootstrap 2.3.1 следующим образом:
myModal = $('<div/>', {
'class': 'modal hide',
'id': id + '-addModal',
'tabindex': -1, // needed for escape to work...
'role': 'dialog',
'data-backdrop': 'static'
}).append(content);
// insert Modal into DOM...
$(jqElement).after(myModal);
// focus on first input when it pops up...
myModal.on('shown', function () {
myModal.find('select:first').focus();
});
//в ответ на нажатие кнопки... myModal.modal( 'шоу');
В редких случаях на заднем плане отображается, но модальный не отображается. Кто-нибудь сталкивался с подобной проблемой и обходным решением? Я знаю, что IE8 не любит анимированные модалы (использование класса fade
), и это не похоже на ту же проблему, что и мы не используем fade. Проблема появляется в FF, Chrome и IE, но, как и испанская инквизиция, никогда, когда я этого ожидаю.
Ошибка оказывается в рамках выполнения modal('show')
. Кажется, что модаль существует, но не скрыт. Я считаю, что это должно быть достигнуто добавлением класса in
в модальное. Однако события show
и shown
происходят. От взгляда на код начальной загрузки факт, что показанное событие происходит, означает, что событие не предотвращено по умолчанию.
Примечание. Это вопрос, аналогичный тому, который был опубликован ранее, но я добавил дополнительную информацию о том, как он не работает.
Также обратите внимание, что я не могу обновить Bootstrap 3. Я несу ответственность за внесение небольших изменений в уже выпущенный продукт, а изменение базовых библиотек - это не стартер.