Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344

    jQuery accordion: mantenere menù attivo

    In pagine PHP ho un menù in accordion. Quando ricarico la pagina il menù si riposiziona sempre al primo elemento.

    Al momento per mantenere aperto la sezione che mi interessa passo in query alla pagina il numero del menu e utilizzo il metodo active di accordion.

    Esistono altri modi per mantenere il menù attivo sulla sezione che era rimasta aperta?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    confronta l' indirizzo corrente con quello dei link contenuti nell' accordion
    dove trovi corrispondenza, quello e' il ramo dell' accordion da tenere "active"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    ok ma è sempre una funzione da fare. allora forse mi conviene mantenerla attiva con il $_GET.
    Pensavo ci fosse un metodo "integrato" in jQuery o qualcosa del genere.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da aasmdaa
    allora forse mi conviene mantenerla attiva con il $_GET.
    ...no, ma l' applicazione e' tua e decidi tu

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Ok ma non offenderti!

    La funzioni che dici è da fare in javascript?
    Qualche suggerimento?

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    e chi si offende?
    personalmente non lo lascerei cosi'

    puoi risolvere tanto lato server quanto lato client
    se il menu' lo componi lato server e' piu' semplice valutare i link mentre lo stai scrivendo
    altrimenti lo farai dopo, lato client

    considerando l' esempio base dell' accordion
    codice:
    			$(function(){
    
    				// Accordion
    				var num=0; // ramo da espandere di default
    				$("#accordion a").each(function(n,el){
    					if(el.href.indexOf(location.pathname)>-1) num=n;
    				})
    				$("#accordion").accordion({ header: "h3" ,active:num});
    			});
    giusto per darti l' idea, va chiaramente affinato

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Il menù lo costruisco tramite DB lato server e poi lancio l'accordion di jQuery.

    Mi spiegheresti questo?

    ("#accordion a").each(function(n,el){
    if(el.href.indexOf(location.pathname)>-1) num=n;

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    questo gira tutti i link dell' elemento con id="accordion"
    ("#accordion a").each(function(n,el){
    se l' href del link e' uguale al pathname (percorso escluso protocollo,dominio,querystring,hash)
    quello e' il numero nell' elenco dei link da settare
    if(el.href.indexOf(location.pathname)>-1) num=n;

    comunque e' proprio buttato li'


    se gia' "giri" tutti i link lato server assegna li' un id al ramo opportuno
    poi tutto quello che scrivi e'
    $("#accordion").accordion({ header: "h3" ,active:"#idRamoEspanso"});
    ti conviene tantissimo

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Riferendomi al secondo metodo non capisco quale sia la differenza rispetto a quello che ho già fatto:

    assegno lato server un id di attivo al ramo interessato (ad es. quando clicco sul link passo un valore che riprendo nella pagina destinazione e assegno l'id univo).
    Poi lato client, tramite jQuery, attivo quel ramo con l'accordion.

    Scusa l'ignoranza ma vorrei capire (non sono un esperto di javascript).

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    javascript c'entra poco
    la differenza e' che mentre tu "passi" quel valore (e se lo riprendi con $_GET lo passi appeso all' indirizzo), cosi' e' la pagina stessa, in base alla propria posizione nel sito (indirizzo), a ricavarsi quale ramo aprire

    la location e' modificabile manualmente ed e' destinazione da provenienza spesso ignota,
    come vorresti fare tu presupponi che ci sia sempre un link controllabile (perche' devi appendere all' indirizzo quale ramo aprire) che punti al documento, mentre se per qualsiasi motivo il link a quel documento non e' come te lo aspetti il menu' risulta "rotto"

    ripeto, sono punti di vista, ogni sviluppatore ha standard diversi
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.