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

    aggiungere un ritardo a una funzione

    ciauz a tutti...

    volevo chiedervi... è possibile fare in modo che una funzione agisca dopo tot secondi che è stata richiamata?
    mi spiego meglio...

    codice:
    function switch(id){
    	 if (document.getElementById){
                            document.getElementById("prova1").style.display = 'none';
                            document.getElementById("prova2").style.display = 'none';
          			document.getElementById(id).style.display = 'block';   
    
       
      	}
    }
    function hide(id){
    
    	 if (document.getElementById){
                            document.getElementById(id).style.display = 'none'; 
    
       
      	}
    }
    
    function display(id){
    
    	 if (document.getElementById){
                            document.getElementById(id).style.display = 'block'; 
    
       
      	}
    }
    codice:
    Link1
    Link2
    
    <div id='prova1' style="width:400px; display:none;" onmouseout="hide('prova1')" onmouseover="display('prova1')"></div>
    <div id='prova2' style="width:400px; display:none;" onmouseout="hide('prova2')" onmouseover="display('prova2)"></div>
    vorrei fare in modo che quando viene richiamata hide() passi adesempio 3 secondi prima che scompaia...

    cmqse qualcuno ha qualche suggerimento per rendere questo piccolo codice + "corretto" ...accetto volentieri ogni consiglio!

    ciauz e grazie a tutti

  2. #2
    puoi chiamare la funzione da ritardare con setTimeout.
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  3. #3
    ti ringrazio davvero della risposta...
    ho preso esempio da un altro script che utilizzava la funzione settimout ...però il codice nn funziona...
    cioè non da nessun errore... per quando richiamo hide('prova1')
    non fa nulla...

    ecco il codice modificato

    codice:
    var delay_hide=500
    
    
    function switch(id){
    
    	 if (document.getElementById){
                            document.getElementById("prova").style.display = 'none';
                            document.getElementById("prova2").style.display = 'none';
          			document.getElementById(id).style.display = 'block';   
      	}
    }
    function hide(id){
    	 if (document.getElementById)
                delayhide=setTimeout("hide2()",delay_hide, id)
    }
    
    function hide2(id){
    	 if (document.getElementById)
                document.getElementById(id).style.display = 'none'
    }
    
    
    function display(id){
    
    
    	 if (document.getElementById){
                            clear_delayhide();
                            document.getElementById(id).style.display = 'block'
      	 }
    }
    
    function clear_delayhide(){
             if (window.delayhide)
                clearTimeout(delayhide)
    }
    ciauz e grazie

  4. #4
    prego

    codice:
    function hide(id){
    	 if (document.getElementById)
                delayhide=setTimeout("hide2()",delay_hide, id)
    }
    
    function hide2(id){
    	 if (document.getElementById)
                document.getElementById(id).style.display = 'none'
    }
    non passi l'ID alla hide2.

    prova con

    codice:
    function hide(id){
    	 if (document.getElementById)
                delayhide=setTimeout(function () {hide2(id);},delay_hide, id)
    }
    ma non sono sicurissimo che funzioni è da un po' che non uso le setTimeout...
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  5. #5
    grazie dell'aiuto...ma nn funge :-/
    cioè...se ne frega del ritardo... esegue subito la funzione...
    ho letto che bisogna emplicitamente quotare la funzione...altrimenti settimeout la esegue subito... allora ho provato a mettere

    codice:
    function hide(id){
    	 if (document.getElementById)
                delayhide=setTimeout("function () {hide2(id);}",delay_hide, id)
    }
    nessun errore...ma come nel mio precedente post... non succede nulla.
    ah cmq l'id la dovrebbe passare qui
    delayhide=setTimeout("hide2()",delay_hide, id)
    da quanto ho letto cercando info su settimeout gli argomenti vanno messi in fondo...
    probabilmente mi sbaglio...

    ciauz e grazie...

  6. #6
    Oops, avevo dimenticato di cancellare il parametro id alla fine, lo passavo già in function () { hide2(id);}
    Che io sappia le virgolette per come ho impostato la funzione non servono. Riprova la mia funzione rimuovendo il terzo parametro id alla fine.
    un consiglio, almeno per i test aumenta il tempo di delay, tanto per accorgertene meglio. mezzo secondo mi sembra pochino.
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  7. #7
    suppperrrrr funge tutto a meraviglia... sono anche riuscito a fare a meno di una funzione... :-)


    codice:
    var delay_hide=2000
    
    
    function switch(id){
    
    	 if (document.getElementById){
                            document.getElementById("foto1").style.display = 'none';
                            document.getElementById("foto2").style.display = 'none';
          			document.getElementById(id).style.display = 'block';   
      	}
    }
    function hide(id){
    	 if (document.getElementById)
                delayhide=setTimeout(function () {document.getElementById(id).style.display = 'none';},delay_hide)
    }
    function display(id){
    
    
    	 if (document.getElementById){
                            clear_delayhide();
                            document.getElementById(id).style.display = 'block'
      	 }
    }
    
    function clear_delayhide(){
             if (window.delayhide)
                clearTimeout(delayhide)
    }

    grazie mille per l'aiuto!!!

  8. #8
    prego
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

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.