Чтобы открыть модальный объект с указанным идентификатором, вам просто нужно знать идентификатор и
- Удалить
id
id="{{ t.id }}"
из тега a
Переименуйте вашу цель data-target="#modal-{{ t.id }}"
, чтобы было немного лучше избегать нескольких идентичных id
s.
<a data-toggle="modal" class="info" data-target="#modal-{{ t.id }}"....
Наконец переименуйте id
ваших модалов, какцель выше
<div id="modal-{{ t.id }}" class="fruitsModal" tabindex="-1" style="display: none">
Тег a
становится:
<a class="info" data-target="#modal-{{ t.id }}" href="#">show details</a>
И модальным:
<div id="modal-{{ t.id }}" class="fruitsModal" tabindex="-1" style="display: none">
<div class="modal-dialog modal-lg ">
1-й вариант :
Если вам нужно, чтобы загрузчик сделал все за вас, значит, когда вы нажимаете a
без вашего скрипта, the modal
будет отображаться.
Просто добавьтеатрибут data-toggle
для вашего тега a
и добавьте то же значение data-target
к href
.
<a data-toggle="modal" href="#modal-{{ t.id }}" data-target="#modal-{{ t.id }}"
В этом случае data-target=""
на самом деле не требуется
2-й вариант :
Поскольку вы хотите сделать что-то перед тем, как показывать модал, это соответствует вашим потребностям.При запуске тега a
с событием click
, равным js, вам просто нужно показать соответствующий модальный
$('.info').click(function (e) {
$(".fruitsModal").fadeIn('slow');
var image = $(e.relatedTarget).attr('src');
var text = $(e.relatedTarget).attr('t.name');
$(".img-responsive").attr("src", image);
$(".modal-body").attr("modal-body-text", text);
console.log('hello bind');
// # retrieve the target modal: data-target="#modal-{{ t.id }}"
<b>var t_modal = $("this").data('target');</b>
<b>$(t_modal).show();</b> // this is because you have style={display:none}
<b>$(t_modal).modal('show');</b>
});