2016-10-07 19 views
6

我有一個彈出式模式,我在加載時在我的頁面上加載,我想使它成爲一次它已關閉,不會再次顯示該用戶。我用localStorage();做了類似的事情,但由於某些原因無法弄清楚這個工作的語法。使用localStorage()在模態中保存一個「關閉」狀態,所以它不會再顯示給那個用戶

我嘗試了一個解決方案,它設置了一個類,但在刷新它將重新加載原始元素,所以現在我正在嘗試這個想法,將模態的狀態更改爲「已訪問」。任何想法,我可能會錯過,以我希望的相同方式來工作?

localStorage的功能:

$(function() { 

    if (localStorage) { 
     if (!localStorage.getItem('visited')) { 
      $('.projects-takeover').show(); 
     } 
    } else { 
     $('.projects-takeover').show(); 
    } 

    $('.projects-close').click(function() { 
      $('.projects-takeover').fadeOut(); 
    }); 
     localStorage.setItem('visited', true); 
     return false; 
    }); 

這裏是一個jsfiddle與實施以及代碼,感謝您的幫助!

回答

3

你的javascript代碼是正確的。好東西你添加了一個jsfiddle,因爲問題變得非常容易識別 - 模式的風格設置爲始終可見。只需將display屬性更改爲.projects-takeover類中的nonе即可。退房的更新fiddle

+0

那將是'none'而不是'non',當然。 – Simba

+0

謝謝,修好了 –

+0

對不起,回覆晚了,但是這個修好了!非常感謝! –

0

試試這個 - >

$(function() { 
    var pt = $('.projects-takeover'); //i just hate repeating myself. 
    if (localStorage) { 
    if (!localStorage.getItem('visited')) { 
     pt.show(); 
    } else { 
     pt.hide(); //this bit was missing 
    } 
    } else { 
    pt.show(); 
    } 

    $('.projects-close').click(function() { 
     pt.fadeOut(); 
    }); 
    localStorage.setItem('visited', true); 
    return false; 
}); 
+1

這使得模式仍然會短暫出現,直到隱藏它的JavaScript有機會運行。我認爲如果設置了「已訪問」項目,它甚至不會顯示出來。 – Zack

+0

@Zack,確實,這是我想提到的,但注意到Vasil已經指出了它。我留下了我的回答,這是一種安全網,以防可見性得到消息。IOW:做額外的隱藏沒有傷害.. – Keith

相關問題