0

我在两种模式之间切换。第一个模式包含一个调用此函数的按钮:

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错误。

有任何想法吗?

4

3 回答 3

1

我之前确实有另一个模态

这是 V3 中的一个错误,而我在 V4 中没有遇到它,仅仅是因为我在 V3 中关闭我的模态时实现了相同的方法。这就是我对 V3 的要求:

function closeModals() { 
    $(".reveal-modal").trigger("reveal:close"); 
}

这确保在我做另一个模态之前我没有打开任何模态。在 V4 中,我有这个:

function closeModals() { 
    $('.reveal-modal').foundation('reveal', 'close');
}

我再也没有遇到过这个问题。

于 2013-05-02T03:24:08.563 回答
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>
于 2013-05-03T01:50:32.937 回答
0

这是此问题的实际解决方案:

编辑foundation.reveal.js。在关闭函数的末尾,插入以下行。

this.hide(this.settings.bg);
于 2013-06-08T01:52:13.473 回答