Questa settimana ho ricercato e assemblato alcuni jquery (è la prima volta che lavoro con jquery) per controllare un menu comprimibile in un file sidebar.php personalizzato di WordPress. Il menu viene generato dinamicamente, utilizzando wp_query per selezionare e ordinare i tipi di post personalizzati in base a tassonomie personalizzate e ordini di ordinamento personalizzati, ecc. (Quindi non esiste una soluzione plug-in).perché i miei cookie jQuery non sono disponibili su più pagine?
Desidero mantenere lo stato di espansione/compressione delle sezioni del menu mentre i visitatori del sito navigano nel contenuto. Utilizzando jquery sembra che stia scrivendo nomi di cookie univoci per il browser, e sembra che stia superando con successo i valori di classe "espanso" o "compresso" dei miei tag.
Tuttavia, i cookie non funzionano su più pagine: se si passa a un'altra pagina, non vengono impostati nuovi cookie finché non si fa clic su una voce di menu. Se si preme il browser posteriore e si torna alla pagina precedente, i cookie impostati nella pagina precedente sono impostati su (che è buono). Si noti che quando si naviga in una nuova pagina il menu viene rigenerato, ma il contenuto del menu cambia raramente (quindi gli ID sono stabili) e i cookie sono solo per la sessione corrente (e dovrebbero ancora essere trattenuti dalle pagine precedenti) .
Ho sperimentato con l'impostazione dei cookie PHP, e si conservano bene da una pagina all'altra. Ma i miei jquery cookie sembrano essere specifici della pagina, quindi sto facendo qualcosa di sbagliato.
Ecco il codice jQuery che appare nella mia pagina PHP per controllare il menu e scrivere i miei biscotti (NOTA: Io sto il collegamento al plugin jquery.cookie.js):
<script type="text/javascript">
$(document).ready(function() {
setTimeout(function() {
$('#port-menu > li > a.expanded + ul, #port-menu > li ul li > a.collapsed + ul').slideToggle('medium');
$('#port-menu > li > a').click(function() {
$(this).toggleClass('expanded').toggleClass('collapsed').parent().find('> ul').slideToggle('medium');
var vartag = $(this).get(0).tagName.toLowerCase();
var varclass = $(this).attr('class');
var cookiename = $(this).parent().attr('id');
$.cookie(cookiename, $(this).attr('class'));
});
$('#port-menu > li ul li > a').click(function() {
$(this).toggleClass('expanded').toggleClass('collapsed').parent().find('> ul').slideToggle('medium');
var vartag = $(this).get(0).tagName.toLowerCase();
var varclass = $(this).attr('class');
var vargenre = $(this).parent().parent().parent().attr('id');
var varoutlet = $(this).parent().attr('id');
var cookiename = vargenre + varoutlet;
$.cookie(cookiename, $(this).attr('class'));
});
}, 250);
});
</script>
A titolo di esempio , i nomi dei cookie creati in modo dinamico e valori sembrano qualcosa di simile:
genre2: crollato
genre3: espansa
genre1outlet2: Espanso
genre2outlet3: ampliati
genre2outlet4: ampliati
Come accennato in precedenza, Sono nuovo di jQuery. Sono anche nuovo di usare i cookie. Qualsiasi aiuto sarebbe molto apprezzato.
P.S. Una volta ottenuto questo lavoro, non ho idea di come ottenere le informazioni dalla mia gamma di cookie e applicare le classi al mio menu - ma questo è un problema separato.
impostare il percorso per/e sarà – machineaddict