Я бы хотел иметь возможность загружать обычный модальный диалог (который хранится во внешнем файле) на любую страницу, которой требуется модал как часть страницы. Кажется, что это в основном работает, за исключением того, что ни события show.bs.modal, ни hide.bs.modal не запускаются, когда модальная разметка загружается из внешнего файла. Тем не менее, события запускаются нормально, если я закомментирую загрузку внешней html и просто скопируйте разметку внешних файлов прямо в тело страницы.
На странице (index.html), которая загружает модальную разметку и затем отображает ее, у меня есть следующая разметка.
<body>
<button type="button" class="btn" data-toggle="modal"
data-target="#simpleModalDialog" >
open External Modal
</button>
<div id="externalModal" />
<script>
$(document).ready(function(){
$('#externalModal').load('modal_dialog_simple.html');
// setup handlers
$('#simpleModalDialog').on('show.bs.modal',function(){
console.log('show bs modal event triggered');
});
$('#simpleModalDialog').on('hide.bs.modal', function(){
console.log('hide bs modal event triggered.');
});
});
</script>
</body>
во внешнем файле modal_dialog_simple.html разметка выглядит следующим образом:
<div class="modal fade" id="simpleModalDialog">
<div class="modal-dialog modal-dialog-centered" >
<div class="modal-content">
<div class="modal-header">
<h4 id="modal_heading" class="modal-title">
Simple Modal Heading
</h4>
<button id="modal_close_button" type="button"
class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<input type="text" value="test" id="message"/>
</div>
<div class="modal-footer">
<button type="button" class="btn">Submit</button>
<button type="button" class="btn btn-secondary"
data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
Заранее спасибо за помощь.