Visualizzazione dei risultati da 1 a 10 su 10

Discussione: jquery elemento aperto

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    jquery elemento aperto

    Ciao a tutti
    Premetto : non spaventatevi da tutto il codice che ho postato.
    Riassumendo il mio problema e' che vorrei aprire al caricamento della pagina
    il mio menu a fisarmonica in un punto specivico gia srotolato....spero si capisca
    ho utilizzato jquery


    ecco il codice


    una semplice lista

    Codice PHP:
     <ul class="menu">[*]
             [
    url="#"]Soppalchi e strutture speciali[/url]
                 <
    ul class="acitem">
                [*][
    url="soppalchi_carpenteria.php"]Soppalchi in carpenteria[/url]
                    [*][
    url="strutture_reticolari_leggere.php"]Strutture reticolari leggere[/url][*][url="strutture_reticolari_pesanti.php"]Strutture reticolari pesanti[/url]
                  
                      [/list]
                        [*]
             [
    url="#"]Soppalchi e strutture speciali[/url]
                 <
    ul class="acitem">
                [*][
    url="soppalchi_carpenteria.php"]Soppalchi in carpenteria[/url]
                    [*][
    url="strutture_reticolari_leggere.php"]Strutture reticolari leggere[/url][*][url="strutture_reticolari_pesanti.php"]Strutture reticolari pesanti[/url]
                  
                      [/list]
                        [/list] 

    questo il css
    Codice PHP:



    ul
    .menuul.menu ul {
      list-
    style-type:none;
      
    margin0;
      
    padding0;
      
    width230px;
    }

    ul.menu a {
      
    displayblock;
      
    text-decorationnone;    
    }

    ul.menu li {
      
    margin-top1px;
    }

    ul.menu li aul.menu ul.menu li a {
      
    background#333;
      
    color#fff;    
      
    padding0.5em;
    }

    ul.menu li a:hoverul.menu ul.menu li a:hover {
      
    background#000;
    }

    ul.menu li ul li aul.menu ul.menu li ul li a {
      
    background#ccc;
      
    color#000;
      
    padding-left20px;
    }

    ul.menu li ul li a:hoverul.menu ul.menu li ul li a:hover {
      
    background#aaa;
      
    border-left5px #000 solid;
      
    padding-left15px;
    }
    ul.menu ul.menu li a:hover {
        
    border-left0;
        
    padding-left0.5em;
    }
    ul.menu ul.menu {
        
    border-left5px #f00 solid;
    }
    ul.menu a.activeul.menu ul.menu li a.activeul.menu a.active:hoverul.menu ul.menu li a.active:hover {
        
    text-decorationnone;
        
    background#c00;

    }
    div.panel {
        
    border1px #000 solid;
        
    padding5px;
        
    margin-top1px;
    }

    ul.menu div.panel aul.menu div.panel li a:hover  {
        
    display :inline;
        
    color#666;
        
    backgroundnone;
        
    margin0;
        
    padding0;
        
    bordernone;
        
    font-weightbold;
    }
    ul.menu div.panel a:hover {
        
    color#000;
        
    text-decorationunderline;
    }


    .
    code border1px solid #ccc; list-style-type: decimal-leading-zero; padding: 5px; margin: 0; }
    .code code displayblockpadding3pxmargin-bottom0; }
    .
    code li background#ddd; border: 1px solid #ccc; margin: 0 0 2px 2.2em; }
    .indent1 padding-left1em; }
    .
    indent2 padding-left2em; }
    .
    indent3 padding-left3em; }
    .
    indent4 padding-left4em; }
    .
    indent5 padding-left5em; }
    .
    indent6 padding-left6em; }
    .
    indent7 padding-left7em; }
    .
    indent8 padding-left8em; }
    .
    indent9 padding-left9em; }
    .
    indent10 padding-left10em; } 


    e infine il javascript che gestisce il menu ....quello che interessa
    Codice PHP:



    jQuery
    .fn.initMenu = function() {  
        return 
    this.each(function(){
            var 
    theMenu jQuery(this).get(0);

           
        
    jQuery('.acitem'this).hide();
            
    jQuery('li.expand > .acitem'this).show();
            
    jQuery('li.expand > .acitem'this).prev().addClass('active');
            
    jQuery('li a'this).click(
                function(
    e) {
                    
    e.stopImmediatePropagation();
                    var 
    theElement jQuery(this).next();
                    var 
    parent this.parentNode.parentNode;
                    if(
    jQuery(parent).hasClass('noaccordion')) {
                        if(
    theElement[0] === undefined) {
                            
                            
    window.location.href this.href;
                        }
                        
    jQuery(theElement).slideToggle('normal', function() {
                            if (
    jQuery(this).is(':visible')) {
                                
    jQuery(this).prev().addClass('active');
                            }
                            else {
                                
    jQuery(this).prev().removeClass('active');
                            }    
                        });
                        return 
    false;
                    }
                    else {
                        if(
    theElement.hasClass('acitem') && theElement.is(':visible')) {
                            if(
    jQuery(parent).hasClass('collapsible')) {
                                
    jQuery('.acitem:visible'parent).first().slideUp('normal'
                                function() {
                                    
    jQuery(this).prev().removeClass('active');
                                }
                            );
                            return 
    false;  
                        }
                        return 
    false;
                    }
                    if(
    theElement.hasClass('acitem') && !theElement.is(':visible')) {         
                        
    jQuery('.acitem:visible'parent).first().slideUp('normal', function() {
                            
    jQuery(this).prev().removeClass('active');
                        });
                        
    theElement.slideDown('normal', function() {
                            
    jQuery(this).prev().addClass('active');
                        });
                        return 
    false;
                    }
                }
            }
        );
    });
    };

    jQuery(document).ready(function() {jQuery('.menu').initMenu();}); 

    come posso al caricamento della pagina aprire una voce del menu a mia scelta?
    vedremmo poi che e' la voce riferita alla pagina.

    non capisco proprio. Posso dare degli id alle mie liste pero...come faccio a dire apri quella al caricamento e chiudi le altre?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    up...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    io scommetto che uno che mastica un attimo di codice mi sa dare una risposta....per favore ....aiuto.... devo solo espandere 1 ramo del menu al caricamento

  5. #5
    Se quel codice l'hai scritto tu allora dovresti sapere che nelle prime righe sembrerebbe aprire un elemento li con classe expand (quindi dovrebbe essere sufficiente inserire la classe expand all'elemento che ti interessa).
    Se non l'hai scritto tu sarebbe stato meglio sapere che plugin è ed eventualmente cercare nella relativa documentazione.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    non l'ho scritto io ...altrimenti avrei saputo come fare.

    mi puoi postare un esempio ....?

  7. #7
    Originariamente inviato da Senamion
    (quindi dovrebbe essere sufficiente inserire la classe expand all'elemento che ti interessa)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    gentilmente potresti essere piu preciso? parlo proprio a livello di codice

  9. #9
    Il li che vuoi aprire deve avere classe expand:

    codice:
         <li class='expand'>

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    grazie....ma cosi ero capace anche io....


    devo far si che il menu aperto sia aperto solo se siamo su quella pagina.


    capisco anche io che se mi copio il codice html del menu e lo metto su tutte le pagine, in ogni pagina mettero class="expand" sul blocco interessato.

    ma io il mio menu lo ho messo in un template. In pratica tutte le pagine hanno lo stesso codice.

    A me piacerebbe dire nel codice js.....al caricamento guarda che pagina sei : se la pagina e' uguale al link del primo <a href="...."> allora EXPAND il primo blocco....


    Per capirci a livello di codice dovrei agire qui
    Codice PHP:

    jQuery
    .fn.initMenu = function() {  
        return 
    this.each(function(){
            var 
    theMenu jQuery(this).get(0);

           
        
    jQuery('.acitem'this).hide();


    ************ 
    QUI CONTROLLO CHE PAGINA SONO E SROTOLO LA VOCE DI MENU EQUIVALENTE


            jQuery
    ('li.expand > .acitem'this).show();
            
    jQuery('li.expand > .acitem'this).prev().addClass('active'); 


    ..... 
    qui il codice continua....non lo riporto tutto (vedi sopra

    etc etc etc....
    spero di essere stato chiaro

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.