Visualizzazione dei risultati da 1 a 8 su 8

Discussione: parentela nel menu

  1. #1

    parentela nel menu

    Ciao a tutti ho questo problema:

    un menu a più livelli (3), ogni livello ha un nome di una classe.

    cliccando sul primo livello prende il nome del menu e lo inserisce in un input
    cosi fa anche per il secondo e per il terzo livello.

    fino qui nessun problema.

    se ho i tre campi pieni e voglio risalire di livello, dovrei svuotare gli altri input ma questo non me lo fa.

    ho strutturato il js in questo modo:

    codice:
    $("li.group").click(function( ) {
                
                var group = $(this).attr("id"); 
    	    var groupTitle = $(this).attr("title");  
    	    
                $('#cat').attr('value', group);
    	    $('#cat_nome').attr('value', groupTitle);
                $('.cat').text(groupTitle);
    });
    Gli altri livelli cambiano il nome della classe ma sono identici

    codice:
    $("li.subgroup").click(function() { // codice });
    $("li.product").click(function() { // codice });
    naturalmente se io torno indietro e clicco la classe group non mi entra nelle altre funzioni

    e se clicco su subgroup essendo annidiato il menu mi entra anche sulla classe superiore.

    dovrei pulire gli input risalendo di livello come posso fare?? sono tre giorni che impazzisco senza trovare una soluzione.

    ho provato anche mettendo un load con gli input in un altro file in modo da ripulire ogni volta, ma questa viene caricata per ultima anziche caricare per prima.


  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    sinceramente non ci ho capito nulla, posta un pagina demo dove vedere lo script in funzione...

  3. #3
    MENU

    + Categoria uno
    + Categoria due
    + Categoria tre

    INPUT

    categoria: non selezionata
    sotto categoria: non selezionata
    prodotto: non selezionata

    --------------------------------------

    ora clicco sulla categoria

    -------------------------------------

    MENU

    + Categoria uno
    + Categoria due
    -- + sottocategoria uno
    -- + sottocategoria due
    -- + sottocategoria tre
    + Categoria tre

    INPUT

    categoria: categoria due
    sotto categoria: non selezionata
    prodotto: non selezionata

    -------------------------------------------

    ora clicco sulla sotto categoria

    -------------------------------------------

    MENU

    + Categoria uno
    + Categoria due
    -- + sottocategoria uno
    -- + sottocategoria due
    ------- + prodotto uno
    ------- + prodotto due
    ------- + prodotto tre
    -- + sottocategoria tre
    + Categoria tre

    INPUT

    categoria: categoria due
    sotto categoria: sottocategoria due
    prodotto: non selezionata

    -----------------------------------------------

    infine clicco sul prodotto

    ------------------------------------------------

    MENU

    + Categoria uno
    + Categoria due
    -- + sottocategoria uno
    -- + sottocategoria due
    ------- + prodotto uno
    ------- + prodotto due
    ------- + prodotto tre
    -- + sottocategoria tre
    + Categoria tre

    INPUT

    categoria: categoria due
    sotto categoria: sottocategoria due
    prodotto: prodotto tre

    -------------------------------------------------

    tutto funzionante ma ho sbagliato categoria, e devo cambiare

    -------------------------------------------------

    B]MENU[/B]

    + Categoria uno
    + Categoria due
    + Categoria tre
    -- + sotto uno
    -- + sotto due
    -- + sotto tre

    INPUT

    categoria: categoria tre
    sotto categoria: sottocategoria due
    prodotto: prodotto tre

    -------------------------------------------------

    mi ha cambiato la categoria principale, mi ha collassato il menu ma la sotto categoria e il prodotto sono rimasti quelli della categoria precedente.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non ti basta ripulire i campi "figli"?

    esempio:

    codice:
    $("li.group").click(function( ) {
                
                var group = $(this).attr("id"); 
    	    var groupTitle = $(this).attr("title");  
    	    
                $('#cat').attr('value', group);
    	    $('#cat_nome').attr('value', groupTitle);
                $('.cat').text(groupTitle);
    $('#sottocat').val("");
    $('#prod').val("");
    });
    e cosi via...inoltre non mi sono ancora chiare queste due affermazioni:

    naturalmente se io torno indietro e clicco la classe group non mi entra nelle altre funzioni

    e se clicco su subgroup essendo annidiato il menu mi entra anche sulla classe superiore.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    forse ho capito cosa intendi, se ho capito bene ti basta fare cosi:

    codice:
    $("li.group").click(function( ) {
    ....
    $('#sottocat').val("");
    $('#prod').val("");
    });
    
    $("li.sottocat").click(function(event) {
    ....
    $('#prod').val("");
    event.stopPropagation();
    });
    
    $("li.prod").click(function(event) {
    ....
    event.stopPropagation();
    });

  6. #6
    grazie, provo con event.stopPropagation();

    il punto è che se pulisco i campi figli come dici te mi fa questo effetto:

    clicco prodotto e mi chiama le funzioni in questo ordine:

    prodotto... inserimento e tutto
    sotto categoria... inserimento e tutto
    categoria... inserimento e tutto, se ci fosse una pulizia, è come annullare le funzioni superiori

  7. #7
    Funziona a meraviglia grazie mille

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    di nulla

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.