2013-05-02 58 views
0

我在兩種模態之間切換。第一個模式包含一個按鈕來調用這個函數:固執的zurb模態不會消失

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

在顯示模式之前是否顯示了另一個模式?你使用的是什麼版本的基金會? – 2013-05-02 03:00:09

+0

我的確有另一種模式顯示在前面,我正在使用v4 – Lurk21 2013-05-02 03:02:25

+0

上一個模式有一個按鈕,onClick運行一個函數,調用'顯示','關閉'(關閉自己),然後'顯示','打開'的第二模態。我不知道打開第二個模式的onClick函數是否阻止了第一個模式的關閉。 – Lurk21 2013-05-02 03:40:06

回答

1

下面是實際的解決了這個問題:

編輯foundation.reveal.js。在關閉功能結束時,插入以下行。

this.hide(this.settings.bg); 
1

我沒有先前的研究顯示

這是在V3的錯誤另一個模式,我還沒有遇到過在V4僅僅是因爲我在V3關閉我的情態動詞時,實現了相同的做法。這是我的V3:

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

這確保我沒有任何模態之前,我做了另一個。在V4我有這個:

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

我從來沒有再次遇到過這個問題。

+0

我更新了第一個模態的onclick來調用closeModals,然後調用所需的函數,但我得到了相同的行爲。 – Lurk21 2013-05-02 03:41:13

+0

小心把它放在jsfiddle? – 2013-05-02 03:42:32

+0

我不確定它會塞進jsfiddle中有多好......但我會用橋接兩個模式的函數更新問題。 – Lurk21 2013-05-02 03:43:52

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>