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

    Script per mostrare div nascosti uno solo per volta e richiuderli con un altro click.

    Salve ragazzi,
    prima di postare ho provato ad effettuare una ricerca, ma probabilmente la mia scarsa terminologia mi ha portato a non trovare quanto cercavo. Arrivo al dunque: in una pagina ho alcuni div nascosti che devo visualizzare alternativamente, uno solo alla volta e mi serve che gli altri si chiudano automaticamente. Fin qui tutto facile, ho trovato uno script molto funzionale e semplice:

    codice:
    function showonlyone(thechosenone) { var submain = document.getElementsByTagName("div"); for(var x=0; x<submain.length; x++) { name = submain[x].getAttribute("name"); if (name == 'submain') { if (submain[x].id == thechosenone) { submain[x].style.display = 'block'; } else { submain[x].style.display = 'none'; } } } }
    Mi servirebbe però di implementare una funzione per cui, clickando sul pulsante del div corrente, questo scompaia, mentre nello script sopracitato questo rimane aperto, e si chiude solo clickando su un altro. Ed è questo il punto sul quale mi sto arrovellando e per il quale non riesco a trovare soluzione.
    Spero di essere riuscito a spiegarmi, nonostante le carenze.

    Ringrazio anticipatamente chi potesse aiutarmi.

    Marino.
    "Sic notus Ulixes?"

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma insomma, comunque formatta il codice su più righe cosi da rendere il tutto più leggibile, oppure e sarebbe anche meglio metti un link alla pagina pubblica cosi vediamo il tutto in funzione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    cambia questo
    if (submain[x].id == thechosenone)
    in
    if (submain[x].id == thechosenone && submain[x].style.display!='block')

    occhio che "name" non e' un attributo valido per un div, usa le classi e verifica che l' elemento abbia quel className=='submain'
    occhio che name e' parola riservata in javascript

    ciao

  4. #4
    Ciao ragazzi, in effetti riconosco di non aver saputo postare il codice e di non essermi espresso chiarissimamente, seppur al meglio delle mie possibilità. Comunque, grazie ai vostri suggerimenti sono riuscito a risolvere! Grazie davvero!
    "Sic notus Ulixes?"

  5. #5

    Ulteriore problema sullo stesso script

    Dato lo script, che aveva risolto il problema precedente:

    codice:
    function showonlyone(thechosenone) {
    var submain = document.getElementsByTagName("div");
    for(var x=0; x<submain.length; x++) {
      name = submain[x].getAttribute("name");
    if (name == 'submain-2') {
    if (submain[x].id == thechosenone) {
    if (submain[x].style.display == 'block') {
    submain[x].style.display = 'none';
    }
     else {
    submain[x].style.display = 'block'; 
    } 
    }else { 
    submain[x].style.display = 'none';
    }
     }
     }
     
    }
    qualcuno saprebbe suggerirmi come inserire un pulsante che richiude qualsiasi div sia mostrato al momento? una sorta di toggle all? mi servirebbe una sorta di pulsante per tornare alla home. Grazie anticipate, con la speranza di aver io postato adeguatamente il codice, stavolta.
    "Sic notus Ulixes?"

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.