我有一个包含多个项目的页面,每个项目都有一个信息按钮。如果单击此按钮,模式将淡入,并且应显示有关所单击项目的更多信息。
它的工作方式与描述相同,但仅适用于首次点击的项目。这意味着如果您关闭模态并单击另一个项目,您将始终获得第一个单击项目的信息。为了防止这种情况,我认为我需要以某种方式销毁模态,因此bootstrap需要创建一个新模式。
我在使用Bootstrap 3.3.6完全破坏模态时遇到问题。 问题出在"信息模板/模态内容"
<div class="modal fade" id="modal" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
</div>
</div>
</div>
{% for item in items %}
<a href="{% url 'info' item.id %}"
data-toggle="modal"
data-target="#modal"
title="info item" data-tooltip>
<span class="glyphicon glyphicon-info"></span>
</a>
{% endfor %}
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Info</h4>
</div>
<div class="modal-body">
<p>Info about "{{ item }}"...</p>
<!-- PROBLEM PART: Should destory the modal... -->
<script>
$('body').on('hidden.bs.modal', '.modal', function(){
$(this).removeData('bs.modal');
});
</script>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
def info_item(request, **kwargs):
item = Items.objects.get(id=kwargs.get("item_id"))
return HttpResponse(
render_to_string(
"info.html",
{
"item": item,
}
)
)
答案 0 :(得分:1)
bs.modal
不是一个班级。 hidden.bs.modal
是关闭模式时触发的自定义事件。您可能想要清空.modal-content
内容。
$('body').on('hidden.bs.modal', '.modal', function(){
$(this).parents('.modal-content').empty();
});
答案 1 :(得分:0)
要解决我的问题,我现在.load
<a href="{% url 'info' item.id %}"
onclick="$('.modal-content').load('{% url 'info' item.id %}');"
data-toggle="modal"
data-target="#modal">
<span class="glyphicon glyphicon-info"></span>
</a>
而只使用bootstraps集成js。
<a href="{% url 'info' item.id %}"
data-toggle="modal"
data-target="#modal"
title="info item" data-tooltip>
<span class="glyphicon glyphicon-info"></span>
</a>
我删除了info.html中的脚本部分。
中有所描述