2015-08-22 13 views
12

Jestem nowy w jQuery i mam pewne potrzeby na mojej stronie. Chcę wyświetlić wyskakujące okno div jQuery po raz pierwszy tylko wtedy, gdy użytkownik się pojawi. Nie ma potrzeby pokazywać się ponownie.Pokaż wyskakujące okienko jQuery tylko przy pierwszej wizycie strony

Nadal używam, ale nie wiem, jak ukryć się po raz drugi:

var isshow=0; 
$(document).ready(function() { 
    if (isshow == 0) { 
    $('#jPopup').show(); 
    } 
    isshow = 1; 
}); 

Ale zmienna iShow inicjuje każdym razem.

+0

Do tego celu można użyć pliku cookie lub pamięci lokalnej. –

Odpowiedz

16

Możesz użyć localstorage. Jest łatwy do zrozumienia i używania.

$(document).ready(function() { 
    var isshow = localStorage.getItem('isshow'); 
    if (isshow== null) { 
     localStorage.setItem('isshow', 1); 

     // Show popup here 
     $('#jPopup').show(); 
    } 
}); 

Pokaże ci popup przy pierwszej wizycie Twojej witryny.

+1

Dzięki @umesh, działa dobrze dla mnie. Wielkie dzięki. – rudrainnovative

+0

WC @ grunoinative. –

+0

Czy nazwa zmiennej 'getItem' i' setItem' nie powinna być taka sama? – Bijan

4

Możesz użyć SessionStorage lub LocalStorage do tego w zależności od potrzeb.

Jeśli chcesz zrobić tylko dla tej sesji, użyj SessionStorage. Jeśli powinien być przechowywany na stałe w przeglądarce użytkownika, użyj LocalStorage.

$(document).ready(function(){ 
     if(sessionstorage && !sessionStorage.getItem('isshow')){ 
      $('#jPopup').show(); 
      sessionStorage.setItem('isshow', true); 
     } 
    }); 
3

Można użyć localStorage do tego celu, jak poniżej:

$(document).ready(function(){ 
    var shown= localStorage.getItem('isshow'); 
    if(shown !="t"){ 
     $('#jPopup').show(); 
     localStorage.setItem('isshow', "t"); 
    } 
}); 
1

trzeba ją ukryć na obciążenia lub zrobić to w css (zalecane), a następnie sprawdzić localStorage aby sprawdzić, czy jest to pierwsza wizyta.

$(document).ready(function() { 
     $('#jPopup').hide(); //hide on load or in css, later check if its the first visit 
     var isshow= localStorage.getItem('status'); 
     //check if it is the first visit 
     if (isshow == null || isshow == '') { 
      //set variable to 1 
      localStorage.setItem('isshow', 1); 
      $('#jPopup').show(); 
     } 
     }); 
+0

dlaczego trzeba ukryć, już wyświetla: brak wewnątrz css? – rudrainnovative

+1

@Tal Czy masz jakieś linki prowadzące styl, które by to doradzały? Osobiście uważam, że jest to co najmniej lekko irytujące, gdy duże wyskakujące okienko pojawia się na ułamek sekundy, gdy DOM ładuje się przed wykonaniem skryptu. – Sebi

3

Można ustawić cookie do przechowywania wartości i sprawdzić, czy nie jest ustawiony następnie pokazać okienko:

$(document).ready(function() { 
    var isshow = $.cookie("isshow"); 
    if (isshow == null) { 
     $.cookie("isshow", 1); // Store 

     // Show popup here 
     $('#jPopup').show(); 
    } 
}); 

Albo można ustawić localStorage. Oto działający przykład. jsFiddle

$(document).ready(function() { 
    if(localStorage.getItem('popState') != 'shown') { 
     $("#popup").delay(2000).fadeIn(); 
     localStorage.setItem('popState','shown') 
    } 
}); 
Powiązane problemy