Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128

    mostrare un elemento e nascondere tutti gli altri

    allora, spero di riuscirmi a spiegare chiaramente

    Ho vari div

    codice:
    <div id="blocco-1"></div>
    <div id="blocco-2"></div>
    <div id="blocco-3"></div>
    Il numero che ho dato ai div può variare non è sempre 1, 2 o 3, perchè è l'ID prelevato da una lista di record.

    cliccando un link di questo tipo

    codice:
    <a href="#" onClick="apri(1);">Apri blocco 1</a>
    Mostro il blocco con l'ID 1

    Il problema qual'è?

    se io poi dopo aver cliccato sul primo link clicco anche su questo link

    codice:
    <a href="#" onClick="apri(2);">Apri blocco 2</a>
    Mostro anche il blocco con l'ID 2

    io vorrei fare in modo che quando apro un blocco, tutti gli altri si chiudano!

    Come posso fare?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    I numeri sono consecutivi? tutti gli id hanno una parte in comune? crea una collezione e scorrila:
    codice:
    function apri(n) {
    myArr = document.getElementByTagName("div");
    for(var i=0;i<myArr.length;i++) {
      if(myArr[i].id.substr(0,7)=="blocco-") {
        myArr[i].style.display="none";
        if(myArr.id.substr(7)==n) myArr[i].style.display="block";
      } 
    }
    }
    Scritto al volo e non testato, prendilo come spunto
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.