Я думаю, вы, возможно, неправильно поняли, как должны использоваться модалы.
По моему опыту, они всегда должны быть внизу страницы (в противном случае вы можете столкнуться с различными проблемами с позициями / размерами). , фон не работает и т. д.).
Так что, не добавляйте модал к тд. Просто поместите его внизу страницы и назовите $ (". Modal"). Modal ('show');
Я не понимаю, почему вы клонируете модал. Я предполагаю, что это может быть потому, что вы хотите, чтобы модал "сбрасывался" после каждого использования. Если это так, просто используйте один модальный. Но обновите / введите модальное содержимое перед открытием модального. Есть несколько методов для этого. Некоторый простой javascript мог бы сделать это, это может быть решено с помощью шаблонов или, в некоторых случаях, путем загрузки модального содержимого через ajax. Все зависит.
Например, вы можете сделать что-то вроде этого
<div class="my-modal-content d-none">[put you modal content html here]</div>
<div class="modal my-modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
...
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
...
</div>
</div>
</div>
</div>
И тогда вы можете использовать такой скрипт
$('td').on('click', function(e) {
var modalContentHtml = $(".my-modal-content").html();
$(".my-modal .modal-body").html(modalContentHtml);
// Do event binding to the modal content if necessary
$(".my-modal").modal('show');
}