Для этого вопроса я буду использовать CSS-фреймворк Spectre.
В настоящее время у меня есть следующий модальный код, но я планирую разместить на странице несколько:
<div class = "modal modal-lg" id = "myModalId">
<a href = "#close" class = "modal-overlay" aria-label = "Close"></a>
<div class = "modal-container">
<div class = "modal-header">
<a href = "#close" class = "btn btn-clear float-right" aria-label = "Close"></a>
<div class = "modal-title h5">My Title</div>
</div>
<div class = "modal-body">
<div class = "content">
<!-- content here -->
</div>
</div>
<div class = "modal-footer">
...
</div>
</div>
</div>
В настоящее время для открытия модального окна я использую специальный вызов кнопки, чтобы добавить класс active (который из документации открывает модальный файл.
To make a modal appear, add the active class to the modal container.
Но это довольно неэффективный способ справиться с более чем 20 модальными окнами. Как я могу использовать jQuery для открытия определенных модальных окон?

Я использовал следующие две функции jQuery для открытия и закрытия модальных окон:
$(document).delegate('.modal-toggle', 'click', function(e) {
var modal = $(this).attr('data-modal');
$(modal).addClass('active');
e.preventDefault();
});
$(document).delegate('.modal-close', 'click', function(e) {
$(this).closest('.modal').removeClass('active');
e.preventDefault();
});
Это работает со следующим HTML для использования с Spectre CSS:
<!-- Button -->
<button class = "btn btn-primary modal-toggle" data-modal = "#myModalId">Open Modal</button>
<!-- Modal -->
<div class = "modal" id = "myModalId">
<a class = "modal-overlay modal-close" aria-label = "Close"></a>
<div class = "modal-container">
<div class = "modal-header">
<a class = "btn btn-clear close-modal float-right modal-close" aria-label = "Close"></a>
<div class = "modal-title h5">My Title</div>
</div>
<div class = "modal-body">
<div class = "content">
...
</div>
</div>
<div class = "modal-footer">
</div>
</div>
</div>