Мне трудно подключить модальный SUI к SilverStripe, чтобы генерировать их динамически.
Я хочу добиться чего-то вроде этого:
У меня есть кнопка (прикрепить события) для запуска модального окна с некоторым содержимым. Я хотел зациклить эти элементы (GridField), чтобы генерировать все динамически. Но единственное, чего я могу добиться, - это несколько модальных окон с одним и тем же «классом триггера», и не имеет значения, какую кнопку я нажал (первую, последнюю или что-то еще). У меня есть только один модальный (последний в иерархии). Без SUI решение простое — поместите «это», чтобы получить ближайший элемент, и я могу иметь столько разных модальных окон, сколько захочу, но SUI, похоже, все усложняет.
Я думаю, что лучшим решением будет сгенерировать класс/идентификатор с помощью SilverStripe и передать его в JavaScript для использования с модальным или использовать один класс для каждого модального окна и «каким-то образом сообщить», что эта кнопка запускает этот модальный режим.
В основном мне нужен один фрагмент кода для обработки многих модальных окон, а не много фрагментов для обработки многих модальных окон. Я надеюсь, что это достаточно ясно, в чем проблема.
Вот мой код:
HTML/СС
(без специальных тегов SilverStripe)
<% loop SomeName %>
<div class="job-offers">
<a class="ui right floated button job-application">Click here</a>
</div>
<div class="ui basic modal job-application">
<div class="job-application-sheet">
(...)
<div class="job-application-sheet-content">
<div class="ui grid">
(...)
<div class="ui center aligned container job-application-action">
<p>Lorem ipsum</p>
<button class="ui primary button">Click here</button>
</div>
</div>
</div>
</div>
</div>
<% end_loop %>
JavaScript
$('.ui.basic.modal.job-application')
.modal({
autofocus : false,
observeChanges: true
})
.modal('attach events', '.job-application', 'show');
Как вы можете видеть, класс «job-application» является триггером для модального окна, поэтому можно ли изменить его на «(это)», поэтому мне не нужно писать «конкретный» класс для каждой кнопки/модального окна. Или, может быть, есть другое/более простое решение?