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

    div nascosto, non auto nascondersi...

    Ciao

    Ho questo script, recuperato da questo 3D (link) che mostra e nasconde dei divs


    Codice PHP:
    <script type="text/javascript">
    <!--
    function 
    hide_or_show(id){
        var    
    re = /(^|\s)(hidden)(\s|$)/,
            
    id document.getElementById(id);
        if(
    re.test(id.className))
            
    id.className id.className.replace(re"$1");
        else
            
    id.className += " hidden";
    }
    function 
    show_menu(div){
        
    //div = "bar".concat(div);
        
    switch(this.valore_div){
            case 
    null:
            case 
    undefined:
                
    hide_or_show(valore_div div);
                break;
            case 
    div:
                
    hide_or_show(div);
                
    valore_div null;
                break;
            default:
                
    hide_or_show(valore_div);
                
    hide_or_show(valore_div div);
                break;
        }
        return 
    false;
    }
    //-->
    </script>

    Nella pagina.....
    [url="#"]link[/url]
    [url="#"]link[/url]
    [url="#"]link[/url] 
    Lo script funziona bene, se clicco per mostrare il div 1 mi sparisce il div attualmente mostrato e mi mostra il div 1, il problema è che se ho il div 1 visibile (per esempio) e clicco sul suo link il div 1 sparisce, e ovviamente non viene mostrato nessuno degli altri div.

    Come posso modificare lo script per evitare che cliccando sul link del div attuale questo non sparisca?

    Ho fatto diverse prove, ma non sono riuscito a tirar fuori niente (JS non è il mio forte)
    Grazie

  2. #2

    Re: div nascosto, non auto nascondersi...

    A naso, dovresti togliere la parte di codice che setta la classe 'hidden' al div.
    Quindi qualcosa del genere

    Codice PHP:
    <script type="text/javascript">
    <!--
    function 
    hide_or_show(id){
        var    
    re = /(^|\s)(hidden)(\s|$)/,
            
    id document.getElementById(id);
        if(
    re.test(id.className))
            
    id.className id.className.replace(re"$1");
        
    //else
        //    id.className += " hidden";
    }
    ..
    ... 

    Ciao!

  3. #3
    Scusa l'assenza, ma ero impegnato con un altro problema improvviso....

    Con la modifiche che hai suggerito, non scompare più ma non scompare nemmeno quando clicco per far apparire gli altri div, in pratica appaiono insieme quando clicco...

  4. #4

    Re: div nascosto, non auto nascondersi...

    Scusami avevo frainteso!
    Allora dovrebbe essere cosi', ripristini la funzione hide_or_show e commenti quel paio di righe nella show_menu. Quella parte si occupa di nascondere il div attualmente selezionato.

    Codice PHP:
    <script type="text/javascript">
    <!--
    function 
    hide_or_show(id){
        var    
    re = /(^|\s)(hidden)(\s|$)/,
            
    id document.getElementById(id);
        if(
    re.test(id.className))
            
    id.className id.className.replace(re"$1");
        else
            
    id.className += " hidden";
    }
    function 
    show_menu(div){
        
    //div = "bar".concat(div);
        
    switch(this.valore_div){
            case 
    null:
            case 
    undefined:
                
    hide_or_show(valore_div div);
                break;
            case 
    div:
                
    //hide_or_show(div);
                //valore_div = null;
                
    break;
            default:
                
    hide_or_show(valore_div);
                
    hide_or_show(valore_div div);
                break;
        }
        return 
    false;
    }
    //-->
    </script>

    Nella pagina.....
    [url="#"]link[/url]
    [url="#"]link[/url]
    [url="#"]link[/url] 

    Ciao!

  5. #5
    Perfetto!

    Togliendo (commentando) tutta questa parte, funziona.
    Codice PHP:
            //case div:
                //hide_or_show(div);
                //valore_div = null;
                //break; 

    Grazie 1000!

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.