Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Nascondere DIV

  1. #1

    Nascondere DIV

    Ciao a tutti,
    in una pagina ho X div nominati photo1, photo2, photo3, ecc.

    Mettendo nell'head questo script (preso da questo forum ;-)...
    <script language="javascript" type="text/javascript">
    <!--
    function nascondi(){
    for (i=0;i<numerolayer;i++){
    id='photo'+i;
    document.getElementById(id).style.visibility = 'hidden';
    }
    }
    //-->
    </script>


    ...e richiamandolo con questa stringa nel body...
    chiudi

    ...non si dovrebbero nascondere tutti i div visibili?

    Grazie

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    1) cosa intendi quando dici che li hai "nominati"?? per funzionare quei nomi devono essere associati all'attributo id, non al name.

    2) numerolayer dov'è definito?

    3) che errore ti viene restituito?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    1) con "nominati" intendevo l'id
    2) nel campo "numerolayer" posso mettere un valore p.e. 100 anche se i layer sono solo 20 (per non doverlo sempre modificare all'aggiunta di un nuovo layer) oppure devo mettere il numero esatto
    3) l'errore che mi da è di non chiudere i livelli.

    Grazie

  4. #4
    Più precisamente il link che ho messo è il seguente:

    Apri il div con ID photo0 e chiudi tutti gli altri

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    infatti ottieni l'effetto contrario: prima viene eseguito l'onclick e poi il valore di href.

    In realtà tu devi solo chiamare la funzione sull'onclick

    La funzione dovra nell'ordine
    -chiuderà tutti i div
    -aprire quello selezionato


    poi numerolayer deve essere preciso altrimenti cerchi di settare una proprietà ad un oggetto inesistente (e questo causa un errore)


    esempio

    codice:
    <script language="javascript" type="text/javascript">
    <!--
    function nascondi(layer){
    for (i=0;i<numerolayer;i++){
    id='photo'+i;
    document.getElementById(id).style.visibility = 'hidden';
    }
    
    document.getElementById('photo'+layer).style.visibility = 'visible';
    
    }
    //-->
    e il link diventa

    questo nasconde tutti i layer tranne photo0


    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Ho provato specificando il numero di DIV (attualmente 2) ma non si aprono. Il codice che ho inserito è il seguente:

    1) Nell'head:
    <script language="javascript" type="text/javascript">
    <!--
    function nascondi(layer){
    for (i=0;i<2;i++){
    id='photo'+i;
    document.getElementById(id).style.visibility = 'hidden';
    }
    document.getElementById('photo'+layer).style.visib ility = 'visible';
    }
    //-->
    </script>
    2) Nel body per i link:
    apre photo1 e chiude il resto

    apre photo2 e chiude il resto
    3) Nel body per i layer:
    <div id="photo1">Prova photo1</div>
    <div id="photo2">Prova photo2</div>

  7. #7
    Ho provato nominando l'id da photo0 e funziona!!!!
    Grazie 1000

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    for (i=0;i<2;i++){

    significa che cercherai i layer
    photo0
    photo1

    dal codice html che hai scritto tu hai invece i layer
    photo1
    photo2

    quindi modifica il for in questo modo

    for (i=1;i<=2;i++){
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.