我已经阅读了几篇关于将远程内容加载到模态或动态内容中的文章,并阅读了 #531 问题https://github.com/twitter/bootstrap/issues/531但找不到我想要的东西,也许因为我以错误的方式思考问题。
我有一个内容列表,每个项目显示一个不同的产品和一些关于它的细节。我希望能够单击每个产品的“查看详细信息”链接,并在模式中填充相同的内容,但会使用 CSS 显示一些非常小的附加信息(我的问题可能是如何动态检索不同的内容,但我认为鉴于我需要的额外数据很少,不值得请求)。
列表项的 HTML:
<ul>
<li class="span4 product">
<div class="inner">
<img src="xxxxx" alt="Product xxxxx" />
<div class="control-group">
<label class="control-label">Product Type:</label>
<span class="field">Really cool product</span>
</div>
<!-- Small amount of hidden additional information -->
<div class="control-group hide">
<label class="control-label">Product ID:</label>
<span class="field">123456</span>
</div>
</div>
<a class="details" data-toggle="modal" href="#product-details">View details</a>
</li>
</ul>
1 引导模式 HTML:
<div id="product-details" class="modal hide fade" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-body">
<!-- Product Detail in here dynamically -->
</div>
</div>
当您单击“详细信息”链接时,我希望“内部”内容以模式显示。这里有两个问题:
- 这个列表中有很多项目(我刚刚展示了 1 个),我希望每个“详细信息”链接都能在模态中显示该产品的详细信息。
- 我不想将大量额外的静态模态 html 代码作为每个项目的目标,我只想要 1 个模态,但内容会根据单击的“详细信息”链接而有所不同。
我假设我需要 html 中的一个模式,如关于远程模式对话的问题所示。
这就是我如何更改我不确定的内容。
编辑
我找到了各种各样的解决方案(但几个小时都无法回答我自己的问题)。
$('.product a.details').click(function(){
$(this).parent('.inner').clone().appendTo('#device-modal .modal-body');
$('#product-details').modal();
});
$('#product-details').on('hidden', function(){
$('#product-details .inner').remove();
});
它克隆“产品”的“内部”div,并在“详细信息”时将其附加到静态模式容器,然后在单击链接时启动模式。
如果您退出模式,第二部分将删除该克隆。