2015-05-15 38 views
1

如何顯示每個會話此對話框彈出一次,我看到餅乾的配置,但我不能把它應用到這種情況:在上下文中CoverPop模式彈出只有一次,每節

$(document).ready(function() { 
    ShowDialog(true); 
    e.preventDefault(); 
}); 

$("#btnClose").click(function(e) { 
    HideDialog(); 
    e.preventDefault(); 
}); 

function ShowDialog(modal) { 
    $("#overlay").show(); 
    $("#dialog").fadeIn(300); 

    if (modal) { 
     $("#overlay").unbind("click"); 
    } else { 
     $("#overlay").click(function(e) { 
      HideDialog(); 
     }); 
    } 
} 

function HideDialog() { 
    $("#overlay").hide(); 
    $("#dialog").fadeOut(300); 
} 

這是一個例子我的代碼,我如何申請?

回答

6

您可以使用sessionStorage(HTML 5)來保留一個值,如果您已經顯示彈出窗口,可以讓您知道該值。

http://www.w3schools.com/Html/html5_webstorage.asp

您可以修改代碼,此部分:

$("#btnClose").click(function (e) 
    { 
    HideDialog(); 
    e.preventDefault(); 
    sessionStorage["PopupShown"] = 'yes'; //Save in the sessionStorage if the modal has been shown 
    }); 

然後你就可以在你的document.ready每次驗證它被調用是這樣的:

$(document).ready(function() 
{ 
    if(sessionStorage["PopupShown"] != 'yes'){ 
     ShowDialog(true); 
     e.preventDefault(); 
    } 
}); 

這應該工作,如果您對此方法有任何疑問,請告訴我。

+0

感謝Felipe @ felipe-correa提供的線索,sessionStorage就是這樣,它幫助我找到這個主題:[參考](http://stackoverflow.com/questions/19736436/how-would-i-get -a-notification-bar-to-display-only-per-session) – santo1227

+0

如果它對你有幫助,評價這個問題並選擇它作爲答案:)我很高興它爲你效勞這種方式! –