我在两个模态之间切换。第一个模态包含一个调用此函数的按钮:
function teamControl(action) {
$('#teamControlsModal').foundation('reveal', 'close');
if (action == "create") {
$('#teamFlavorText').html("Create a Team");
loadBusinessInfoSelectBox('businessSize');
loadBusinessInfoSelectBox('businessType');
loadBusinessInfoSelectBox('businessLocation');
$('#createTeamModal').foundation('reveal', 'open');
}
}
反过来打开以下模式:
<div id="createTeamModal" class="reveal-modal">
<form id="createTeamForm" style="width: 480px; margin: auto;"
novalidate="novalidate"></form>
<a class="close-reveal-modal">×</a>
</div>
但是,当我单击X关闭第二个模态时,模态本身会消失,但屏幕会变灰。没有javascript错误。
有什么想法吗?
答案 0 :(得分:1)
我之前有过另一种模式
这是V3中的一个错误,我没有在V4中遇到它只是因为我在V3中关闭我的模态时实现了相同的方法。这就是我对V3的看法:
function closeModals() {
$(".reveal-modal").trigger("reveal:close");
}
确保在我做另一个之前我没有打开任何模态。在V4中我有这个:
function closeModals() {
$('.reveal-modal').foundation('reveal', 'close');
}
我再也没遇到过那个问题。
答案 1 :(得分:1)
以下是此问题的实际解决方案:
编辑foundation.reveal.js。在关闭函数结束时,插入以下行。
this.hide(this.settings.bg);
答案 2 :(得分:0)
我不得不同步这项工作,因为来自第一个模态的onclick的功能是打开第二个模态并阻止第一个模态干净地关闭。
var openModal;
function teamControl(action) {
$('#teamControlsModal').foundation('reveal', 'close');
if (action === "create") {
$('#teamFlavorText').html("Create a Team");
loadBusinessInfoSelectBox('businessSize');
loadBusinessInfoSelectBox('businessType');
loadBusinessInfoSelectBox('businessLocation');
//$('#createTeamModal').foundation('reveal', 'open');
openModal = 'createTeamModal';
}
}
function asyncModalOpen() {
if (openModal !== '') {
$('#' + openModal).foundation('reveal', 'open');
openModal = '';
}
}
function highFreqTimer() {
asyncModalOpen();
}
HTML:
<script type="text/javascript">
setInterval("highFreqTimer()", 500);
</script>