Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    mostra / nascondi diversi div...

    Non sono riuscito a trovare una risposta nel forum. Forse ho impostato male la ricerca...
    passo quindi a chiedere numi:

    ho una serie di bottoni, ognuno dei qualli "apre" un div differente che contiene testo.
    dovrei fare in modo che cliccando su uno dei bottoni si apra il relativo div ed allo stesso tempo si chiuda quello attualmente aperto.

    finché si è trattato di due soli livelli in genere utilizzavo questo script che mi ero scritto:

    codice:
    function mostra_livello(mostr,nasc){      
    document.getElementById(mostr).style.display='block'; 	 
    document.getElementById(nasc).style.display='none';
    ma ora che non so quale sia il livello che devo nascondere, come posso fare? Posso passare una variabile "nasc" in qualche modo? Se alla chiamata aggiungo this.style.display:'block' il risultato (ovvio) è quello di vedere scomparire il bottone...
    come posso fare?

    ciao e grazie (e scusate se magari la soluzione già c'è e non l'ho trovata)

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    devi in qualche modo essere in grado di identificare tutti gli elementi che fanno parte dello stesso "gruppo" in modo da avere una collezione su cui ciclare

    cicli nascondendoli tutti
    poi rendi visibile quello relativo all' elemento cliccato

    oppure cicli evitando di nascondere solo quello relativo all' elemento cliccato, anzi lo mostri
    mentre nascondi tutti gli altri

  3. #3
    Dici raggruppandoli in un div contenitore oppure prevedendo nel passaggio dei parametri tutti i div del gruppo?

    Grazie per la risposta!

  4. #4
    cioè, ecco, volendo potrei fare così (non testato in IE ma credo non dia problemi)

    codice:
    function showhide(mostra){ 		 	
    var numLivelli = new Array("liv1","liv2","liv3","liv4","liv5");
    var livelli = numLivelli.length; 	 	
    for (i=0; i<livelli; i++) {  	
    document.getElementById(numLivelli[i]).style.display='none'; 						
    		} 	 
    document.getElementById(mostra).style.display='block'; 	     						
    	}

    però in questo modo, se dovessi avere una situazione simile in un'altra pagina dovrei poi fare un'altra funzione, no?
    si potrebbe, chiedo, raggruppare in un array tutti i div il cui id inizia per "liv" per esempio?

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.