Как уже указывали другие, ваше использование .append()
неверно, так как в вашем примере это будет буквально просто выводить текст 'modal.html'.Ваш триггер для загрузки модального окна также потерпит неудачу, потому что вы загружаете модальный HTML-шаблон вне DOM.Простое решение будет следующим:
$.ajax({
url: 'modal-template.html',
success: function(data) {
$('body').append(data);
$("#modal-id").modal();
}
});
В приведенном выше коде мы используем встроенную поддержку JJuery AJAX для загрузки вашего HTML-шаблона.При успешной загрузке мы берем эту информацию как data
и добавляем ее к body
.В этот момент ваш модал и соответствующий ему идентификатор теперь существуют в Dom, поэтому мы запускаем модал. Однако предпочтение
My personal заключается в том, чтобы иметь модал 'shell' внутри HTML по умолчанию:
<div class="modal fade" tabindex="-1" id="your-modal" role="dialog">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content"></div>
</div>
</div>
Оттуда вы вставляете содержимое в модальное состояние при необходимости с помощью следующего jQuery:
$('body').on('click', '[data-toggle="modal"]', function(event) {
var m_target = $(this).data("target"),
m_path = $(this).attr("href");
$(m_target + ' .modal-content').load(m_path);
});
$('#your-modal').on('hidden.bs.modal', function (e) {
$(this).find('.modal-content').empty().html('');
$(this).modal('dispose');
});
Первый бит позволяет загружать модальное содержимое в существующий пустой модальныйшаблон.Второй гарантирует, что, когда модальное окно закрыто, оно должным образом очищается, что устраняет потенциальную проблему, когда следующий модальный триггер может загрузить кэшированную / старую информацию (особенно если вы ссылаетесь на недопустимый URL-адрес).Как я уже сказал ... этот метод - просто мое предпочтение, потому что он хранит идентификатор, который уже является частью DOM.Это также немного более гибко (опять же, только мнение), поскольку вы можете передать ему дополнительные атрибуты данных.В моем обычном использовании я также передаю атрибут размера, чтобы определить, насколько большим должен быть модал.