Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di goat
    Registrato dal
    Apr 2003
    Messaggi
    1,154

    ShowHide: come modificare questo script?

    Oilà.
    Sto usando questo bel Javascript:

    Codice PHP:
    function showhide(name) {

    numDiv=10;
        for(
    i=1;i<=numDiv;i++)
        {
            
    nameHide="li"+i;

            if (
    name==nameHide)
            {
                if (
    document.getElementById(name).style.visibility == '' || document.getElementById(name).style.visibility == 'hidden')
                {
                    
    document.getElementById(name).style.visibility 'visible';
                    
    document.getElementById(name).style.position 'relative';
                }
                else
                {
                    
    document.getElementById(name).style.visibility 'hidden';
                    
    document.getElementById(name).style.position 'absolute';
                }
            }
            else
                {
                    
    document.getElementById(nameHide).style.visibility 'hidden';
                    
    document.getElementById(nameHide).style.position 'absolute';
                }
            
            }


    Mi permette di gestire in maniera bellina, ad esempio, le faq di un sito.
    Ovvero: ho la mia lista di faq; alla pressione della faq numero 3 visualizzo il pacchetto di testo relativo subito sotto; alla pressione della faq numero 6 mi si chiude il pacchetto di testo relativo alla faq 3, e mi si apre quello relativo alla 6.
    Il numero di elementi nascosti viene settato dalla variabile numDiv=10;

    Funziona benone. Bene. Bravo.

    Ora purtroppo salta fuori che il cliente vuole le faq gestite esattamente così, ma con la possibilità di aggiungerne o toglierne a piacimento.
    Come posso modificare il codice in maniera tale che funzioni sia che gli elementi nascosti siano 2 o 100?

    Auguro buon weekend e torno nella discussione lunedì...
    Grazie anticipatamente,
    goat
    "Qualunque impressione faccia su di noi, egli è un servo della legge, quindi appartiene alla legge e sfugge al giudizio umano."

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    assegna identica classe agli elementi coinvolti
    se, come e' opportuno, gli elementi sono di un unico tipo ti generi un' htmlCollection (sorta di array di nodi) che comprenda tutti gli elementi di quel tipo con
    codice:
    var tutti=document.getElementsByTagName('div');
    /* puoi anche limitare gli elementi presi in esame se sai che tutti gli elementi in questione sono figli di un unico contenitore identificato tramite id */
    var tutti=document.getElementById('id_contenitore').getElementsByTagName('div');
    e cicli per la sua lunghezza
    codice:
    for(var i=0;i<tutti.length;i++){
    se l' elemento nel ciclo ha quel determinato className lo consideri nel mostra/nascondi
    codice:
    if(tutti[i].className && tutti[i].className=='nomeClasse'){
    fai quello che devi fare
    }
    ciao

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.