• User

    problema con funzione nascondere div

    Ciao a tutti, chiedo scusa che chiedo qualcosa di già risolto, uso questa funzione per visualizzare o nascondere un div

    [script]
    /**
    * Funzione per visualizzare/nascondere determinati elementi
    * @param {elementId} : id dell'elemento da visualizzare/nascondere
    */
    function fToggle(elementId) {
    // Recupero l'elemento dall'Id
    var e = document.getElementById(elementId);

    // Se e' visibile lo nascondo
    if ( !e.style.display || e.style.display != "none" ) {
     e.style.display = "none";
    } else {
     // Altrimenti lo visualizzo
     e.style.display = "block";
    }
    

    }
    [/script]
    Questa funzione controlla id passato se e none apre seno chiude, io vorrei che se; esempio. Ho il div con id 1 apreto e apro anche il div id 2 mi chiuda il div id 1, come devo fare visto che id che passo io lo prendo dinamicamente da un codice php e quindi non lo conosco

    Questo e il codice che invia id alla funziona. Grazie a tutti

    [php]
    <div><a onclick="javascript:fToggle('$row_sql[id]');"><strong>Curriculum</strong></a></div><br />\n
    <div id="$row_sql[id]" style="display:none;">$row_sql[cv]</div>
    [/php]


  • User Attivo

    Ciao spirit19,
    non è necessario modificare lo script che richiami sul link.

    E' sufficente conservare l'ultimo div id che viene aperto:
    [php]
    var lastOpened = null;

    function fToggle(elementId) {

    if(lastOpened != null)
    document.getElementById(lastOpened).style.display = 'none';

    var e = document.getElementById(elementId);

    // Se e' visibile lo nascondo
    if ( !e.style.display || e.style.display != "none" ) {
     e.style.display = "none";
    } else {
        // Altrimenti lo visualizzo
        e.style.display = "block";
    

    lastOpened = elementId;
    }
    }
    [/php]Provalo e fammi sapere.
    Ciao


  • User

    Ciao grazie dell' aiuto, funzionare funziona se apro il div con id 1 e poi apro il div id 2 si chiude il div id 1 "come volevo io" pero se apro il div id 1 e poi lo voglio chiudere non lo chiude per lo meno in un microsecondo lo chiede e lo apre c'è un modo per chiudere e poi riaprire il div id 1? Graziee


  • User Attivo

    Ciao spirit19,
    nella fretta di risponderti mi ero perso una condizione.
    Sostituiscila con questa:
    [php]
    if(lastOpened != null && elementId != lastOpened)
    document.getElementById(lastOpened).style.display = 'none';

    [/php]Ciao


  • User

    Gracias 😉:smile5: