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

Discussione: div a comparsa

Hybrid View

  1. #1

    div a comparsa

    Ragazzi ho uno script funzionante che mi apre i div cliccando sul rispettivo link, solo che il div precedentemente aperto, rimane aperto, io vorrei che si chiudesse, come posso modificare il mio script?

    vi posto il codice e vi ringrazio in anticipo per le risposte

    codice:
    <script type="text/javascript" language="javascript">
    function visualizza(id){
      if (document.getElementById){
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
      }
    }
    </script>

  2. #2
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    Puoi fornire anche l'html?

  3. #3
    HTML è QUESTO:

    codice:
        <a href="#" onclick="visualizza('landi'); return false">                                                        
          <img src="themes/images/team/Landi.jpg" alt="">
                                                              
                                                              
                                                           
     </a>
    poi ci sono altri link con vari id
    codice:
       <div class="row" id="landi" style="display:none">
    contenuto
    </div>
    e vari div con lo stesso id, io vorrei che quando si apre uno quello aperto precedentemente si chiudesse. Grazie

  4. #4
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    codice:
    <script type="text/javascript" language="javascript">
     
    var UnQualche;
    
    var LoUltimo="landi1";
    
    function visualizza(id){
    alert(UnQualche);
      if (document.getElementById){
           document.getElementById(LoUltimo).style.display = 'none';
        if(document.getElementById(id).style.display == 'none'){
          document.getElementById(id).style.display = 'block';
        }else{
          document.getElementById(id).style.display = 'none';
        }
        LoUltimo=id;
      }
    }
    </script>
    
    <div style="float: left;">
     <div class="row" id="landi1" style="display:none">
      contenuto Uno
     </div>
     <div class="row" id="landi2" style="display:none">
      Il contenuto Due
     </div>
     <div class="row" id="landi3" style="display:none">
      Qui contenuto Tre
     </div>
    </div>
    
    <div style="float: right;">
     <a href="javascript: visualizza('landi1');">                                                        
          <img src="path/filename.jpg" alt="Foto 1">
     </a><br><br>
     <a href="javascript: visualizza('landi2');">                                                        
          <img src="path/filename.jpg" alt="Foto 2">
     </a><br><br>
     <a href="javascript: visualizza('landi3');">                                                        
          <img src="path/filename.jpg" alt="Foto 3">
     </a>
    </div>

    A LoUltimo dobbiamo dare un valore iniziale, uno qualunque dei DIV chiusi, altrimenti al primo click la
    document.getElementById(LoUltimo).style.display = 'none';
    rimane ineseguibile perché lo trova undefined e lo script si bloccherebbe lì. Come succederebbe con UnQualche, variabile dichiarata ma non valorizzata/definita (te lo dice l' alert che t' ho messo, che poi lo togli e lo conservi).

    Al suo concludersi, la funzione lascia LoUltimo con il valore dell' ID ora stato aperto, da chiudersi al prossimo click.

    La condizionale if (document.getElementById){ serve a verificare se il metodo document.getElementById è supportato dal Navigatore; e dacché lo è da IE 5. in avanti lo potresti tralasciare, con la relativa graffa di chiusura.
    Ultima modifica di Enzaccio; 02-12-2013 a 17:01

  5. #5
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    All'evento del click, chiudi tutti quelli con la classe row e apri quello con l'id passato alla funzione

  6. #6
    scusa mi potresti aiutare , ho provato a farlo ma non funziona. Grazie

    <scripttype="text/javascript"language="javascript">
    function visualizza(id){
    if(document.getElementById){
    if(document.getElementById(id).style.display =='none'){
    document
    .getElementById(id).style.display ='block';
    }else{
    document
    .getElementById(id).style.display ='none';
    document.class(row).style.display='none';

    }
    }
    }
    Ultima modifica di Werwolfe; 28-11-2013 a 02:06

  7. #7
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    Prima li chiudi tutti, poi apri solo quello selezionato, prova così

    codice:
    function visualizza(id){
    if(document.getElementById){
    document.class(row).style.display='none';
       if(document.getElementById(id).style.display =='none'){
        document.getElementById(id).style.display ='block';
      }else{
        document.getElementById(id).style.display ='none';
      }
    }
    }

  8. #8
    Grazieeeeeee

  9. #9
    Ciao, ho provato lo script come mi hai scritto, ma non apre più i div, non funziona più
    <script type="text/javascript" language="javascript">
    function visualizza(id){
    if(document.getElementById){
    document.class(row).style.display='none';
    if(document.getElementById(id).style.display =='none'){
    document.getElementById(id).style.display ='block';
    }else{
    document.getElementById(id).style.display ='none';
    }
    }
    }
    </script>

  10. #10
    Grazie per la risposta, allora funziona in parte, mi apre i div e mi chiude gli altri, ma quando click mi si apre un pop che dice

    www.nomedelsito.it
    undefined

    poi faccio ok e mi da il div, cosa ho errato? grazie x l'aiuto

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.