当使用 Foundation 6 的 Reveal 模式时,javascript 会自动将显示div
块放在结束body
标记之前,而不是最初写入 DOM 的位置。我需要一种方法来将模态代码保留在我最初编写它的位置,或者至少指定它的父代。
这对我来说是个问题,因为我正在使用 AJAX 来呈现我的页面的一部分(div#main
在下面的示例中),但是我的模态框一直在徘徊,因为它们被移到了外面div
。
我试图通过指定父 div 来打开模式(请参阅此问题的已接受答案)并使用onclick
事件而不是 Foundationsdata-open
方法来执行此操作。对 div 的放置位置也没有任何影响。
例子:
<html>
<head> ... </head>
<body>
<nav>...</nav>
<div id="main">
<h1>Section title</h1>
<p>This is some information about this topic...</p>
<button type="button" data-open="my-modal"></button>
<!-- This is where I add the reveal modal to the DOM -->
<div class="reveal" id="my-modal" data-reveal>
<p>This is my modal content. This should have been positioned inside div#main but it got moved way down here.</p>
</div>
<!-- I need it to show up before the closing tag of this div -->
</div>
<footer>...</footer>
<!-- This is where the reveal modal ends up -->
</body>
</html>
这是上述示例的代码笔。