2016-05-31 8 views
7

Sto tentando di nascondere un pulsante dopo aver fatto clic su un altro pulsante, ma come quando la pagina è stata aggiornata, il pulsante nascosto viene visualizzato nuovamente. Volevo rimanere nascosto anche se aggiorno la pagina e la mostro solo se clicco sul pulsante mostra. Qualsiasi aiuto sarebbe molto apprezzato.Salvare lo stato corrente dopo la funzione clic jquery

HTML:

<button type="button" class="showhide">Show/Hide</button> 
<button type="button" class="link">Link</button> 

JS:

$('.showhide').click(function(){ 
$('.link').hide(); 
}); 
+4

uso [sessionStorage] (https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage) –

+1

@KartikeyaKhosla, grazie proverò questo. – claudios

risposta

5

Come @Kartikeya detto, usare localStorage.

Impostarlo quando si fa clic sul pulsante. Al caricamento della pagina, controllare il valore di localStorage per aggiornare la visibilità del pulsante.

$('.showhide').click(function(){ 
    $('.link').toggle(); 

    var isVisible = $('.link').is(":visible"); 
    localStorage.setItem('visible', isVisible); 
}); 

// stored in localStorage as string, `toggle` needs boolean 
var isVisible = localStorage.getItem('visible') === 'false' ? false : true; 
$('.link').toggle(isVisible); 

https://jsfiddle.net/undm500w/8/

+0

Questo è quello che sto cercando. :) ben fatto – claudios

+0

Prego :) – Pimmol

6

si può gestire il cliente finale con localStorage dal codice di seguito. o è necessario utilizzare sessionStorage sullo script del server.

if(localStorage.getItem('isHide')) 
    $('.link').hide(); 
$('.showhide').click(function(){ 
    $('.link').hide(); 
    localStorage.setItem('isHide',true); 
}); 
+0

Grazie per la rapida risposta. :) Funziona. – claudios

+0

Domanda, quando faccio di nuovo clic sullo show non mostra il pulsante 'link'. Come mostrarlo di nuovo? – claudios

+0

Il modo più semplice è usare ['toggle'] (http://api.jquery.com/toggle/) invece di' hide'. –

2

Se si desidera che il pulsante di rimanere nascosto anche dopo la chiusura del browser si dovrebbe considerare l'utilizzo di localStorage, più su di esso here, altrimenti vi suggerisco di andare con sessionStorage che è qualcosa di simile a sessioni, che significa che tutto memorizzato su la memoria di sessione verrà rimossa alla chiusura del browser. È possibile leggere informazioni sulla memorizzazione della sessione here

Fondamentalmente ci sono due funzioni che è necessario utilizzare. getItem e setItem. Questa è una dimostrazione utilizzando la sessionStorage ma si applica per il localStorage troppo:

$(document).ready(function(){ 
     if(sessionStorage.getItem('isBtnHidden')){ 
      $('.link').hide(); 
     } 

     $('.link').click(function(){ 
      $('.link').hide(); 
      sessionStorage.setItem('isBtnHidden', true); 
     }); 
    }); 
+1

Grazie. anche questo funziona come la risposta precedente. Selezionerò 'localStorage' coz Volevo nasconderlo per sempre e mostrarlo quando clicchiamo sul pulsante show – claudios