Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Hybrid View

  1. #1

    mantenere valore variabile all'esterno della funzione

    salve a tutti

    ho questa funzione qua

    codice:
        $(document).ready(function() {
            $("#accordion > li").click(function(){
                id=(this.id);                                             // VALORE ID
                if(false == $("ul",this).is(':visible')) {
                    $('#accordion ul').slideUp(300);
                }
                $("ul",this).slideToggle(300);
                test(id);
            });
            
            var ok;      
            function test(id) {
               ok= id;                                                    // VALORE ID IN VARIABILE OK
                alert (ok);
    
    
            }
                                                                      // ALERT DI OK QUI PERDE IL VALORE
            $('#accordion ul:eq('+ok+')').show();
        });
    all'interno della funzione test riesco a stampare il valore ID presente nella prima funzione.
    purtroppo però non riesco a riportarlo all'esterno poiché il valore mi servirebbe qui

    codice:
            $('#accordion ul:eq('+ok+')').show();
    cosa sbaglio?

  2. #2
    versione più pulita del codice

    codice:
        $("#accordion > li").click(function(){
            id=(this.id);
            if(false == $("ul",this).is(':visible')) {
                $('#accordion ul').slideUp(300);
            }
            $("ul",this).slideToggle(300);
        });
    
    
        
        $('#accordion ul:eq('+id+')').show(); // IL VALORE ID E' ANDATO PERSO ???

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Cosi ?

    codice:
        var id = 0;
        $("#accordion > li").click(function(){
            id=(this.id);
            if(false == $("ul",this).is(':visible')) {
                $('#accordion ul').slideUp(300);
            }
            $("ul",this).slideToggle(300);
        });
    
    
        
        $('#accordion ul:eq('+id+')').show(); // IL VALORE ID E' ANDATO PERSO ???
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    si già provato ma se stampo un alert all'interno della prima funzione mi da il valore corretto, lo stampo dopo e niente mi da valore 0.
    Può essere che non funzioni poiché la funzione è in un evento on click e quindi per qualche motivo uscendo perde il valore?

    Purtroppo la seconda funzione deve essere separata dalla prima altrimenti non fa il suo dovere, quindi non posso toccare il codice.

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    E se usassi un tag html nascosto per salvare il valore dell'id ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    tipo?

    il codice è il seguente:

    codice:
           <div>
                <ul id="accordion">
                    <li id="0"><?php echo $lang['ADMIN_MENU_DASHBOARD_00'] ?>
                        <ul>
                            <li><a href="dashboard"><?php echo $lang['ADMIN_MENU_DASHBOARD_01'] ?></a></li>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_DASHBOARD_02'] ?></a></li>
                        </ul>
                    </li>
                    <li id="1"><?php echo $lang['ADMIN_MENU_CATALOG_00'] ?>
                        <ul>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CATALOG_01'] ?></a></li>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CATALOG_02'] ?></a></li>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CATALOG_03'] ?></a></li>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CATALOG_04'] ?></a></li>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CATALOG_05'] ?></a></li>
                        </ul>
                    </li>
                    <li id="2"><?php echo $lang['ADMIN_MENU_CUSTOMER_00'] ?>
                        <ul>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CUSTOMER_01'] ?></a></li>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CUSTOMER_02'] ?></a></li>
                            <li><a href="#"><?php echo $lang['ADMIN_MENU_CUSTOMER_03'] ?></a></li>
                        </ul>
                    </li>
    
    ecc ecc ecc

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    - L'intento quale sarebbe?
    - Perché non lo esegui in linea direttamente sull'elemento?
    - Puoi mettere la pagina demo online?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao Carmelo, il codice di badaze e' migliore ma var id=0 la devi mettere fuori dallo scope di jQuery
    Va messa fuori da $(document).ready(.....) o $(function().... ( non so cosa usi ) altrimenti sarà presente solo al suo interno.
    Se cerchi id fuori da $(....) ti darà che non esiste.
    Quindi dovrà essere così:
    codice:
       var id = 0;
      $(function() {
    //tuo codice....dove assegnerai ID
    }
    
    //ovunque nello script avari id.
    Stessa cosa per le funzioni, se le dichiari in $() non saranno visibili all'esterno

  9. #9
    guarda il codice sopra... var id=0 è all'inizio dello script

    Quote Originariamente inviata da m4rko80 Visualizza il messaggio
    Ciao Carmelo, il codice di badaze e' migliore ma var id=0 la devi mettere fuori dallo scope di jQuery
    Va messa fuori da $(document).ready(.....) o $(function().... ( non so cosa usi ) altrimenti sarà presente solo al suo interno.
    Se cerchi id fuori da $(....) ti darà che non esiste.
    Quindi dovrà essere così:
    codice:
       var id = 0;
      $(function() {
    //tuo codice....dove assegnerai ID
    }
    
    //ovunque nello script avari id.
    Stessa cosa per le funzioni, se le dichiari in $() non saranno visibili all'esterno

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    L'id che dici tu e' quello dell'esempio di badaze? se si e' all'interno dello scope jquery sicuramente.
    E se le seconda parte di codice che vuoi richiamare come indicato nel primo tuo esempio e' al di fuori dello scope jQuery non puo' andare.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.