Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340

    jquery come intercettare il termine di un toggle.

    Ciao ragazzi, sto cercando di studiare per benino jquery, libreria che soddisfa molto l'occhio ma se non capisco cosa sto facendo mi infastidisce molto. In pratica sto cercando di capire quando ad un evento click richiamo una funzione, QUANDO questa e' terminata.
    Per farmi capire meglio, ho scritto queste quattro righe di codice, un div, un button ed una gif.
    Quando premo il button la div deve scorrere fino a metà pagina, il button viene sostituito da un loader.gif, e fino a qui nessun problema, tutto funziona, ma non capisco quando tutto questo e' finito.
    Devo capire quando una cosa inizia e quando finisce!!
    Posto il codice, mi aiutate a capire??
    codice:
    <!DOCTYPE>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Test intercettare animazione</title>
     
    <style>
      #p1{position: relative;}
    </style>
    
    
    <script type="text/javascript"  src="jscript/jquery.js" > </script>  
    
    
    <script type ="text/javascript">
     
        function sposta()
        {
              $("#p1").css('background' ,'grey').css('color','white');     
            
            $("#p1").animate({
                    opacity: 0.25,
                    top: "+=50%",
                    height: "toggle"
               }, 5000, function() {              
            });
            
            document.getElementById("button").style.display = "none";   // to undisplay
            document.getElementById("replace").style.display = "";      // to display
             
             return true;
         }
    
    
    </script>
    
    
    
    
    <script type="text/javascript">
     $(document.ready(function())
      {
             /*   commentato, non funziona
               $().ready(function () {
                    alert("termine spostamento");    
                    return true;
                });  */
     
           $('p').load(function () {
                    alert("termine spostamento");    
                    return true;
                });
    
     }
    </script>
    
    
    
    
    </head>
    
    
    <body>
     
     <div id="p1">
         <p>div p1 </p>
     </div>
     
          
         <div id="button">
             <input type="button" value="Clicca" onClick="sposta();" />
         </div>
             
         <div id="replace" style="margin-left:30px; display:none;">
             <img src="Loader.gif" width="30" alt="loading...">..Attendi spostamento ...
         </div> 
                            
    </body>
    </html>

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, nel caso della funzione animate puoi specificare opzionalmente una funzione di callback che viene richiamata, appunto, al completamento dell'animazione.

    Sul tuo esempio hai indicato tale funzione ma non hai inserito nulla al suo interno. Dovrai agire li dentro:
    codice:
    $("#p1").animate({
        opacity: 0.25,
        top: "+=50%",
        height: "toggle"
      }, 5000, function(){alert("L'animazione finisce qui")}
    );
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Nel animate la function(){...} finale è il callback
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Grazie ragazzi, quindi qualsiasi intervento anche un successivo script lo posso gestire, ok ho capito, ma non capisco perche'
    questa parte, non "sente" e non mi da' nemmeno l'alert, come se non esistesse, ma perche'?
    codice:
    <scripttype="text/javascript">
     $(document.ready(function())
      {
             /*   commentato, non funziona
               $().ready(function () {
                    alert("termine spostamento");    
                    return true;
                });  */
     
           $('p').load(function(){
                    alert("termine spostamento");    
                    returntrue;
                });
    
     }
    </script>
    

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Stai mischiando un po' le cose.
    Una cosa è la funzione animate in cui puoi specificare il callback che viene richiamato alla fine dell'animazione, mentre un'altra cosa sono i metodi ready e load che non c'entrano niente con l'animazione (non ho capito se questo ti è chiaro). Sostanzialmente fanno riferimento a degli eventi.
    Ora la domanda è "sai a cosa servono questi due metodi e quando vengono innescati i relativi eventi?"
    Prova a darti una risposta, fai attenzione a dove hai posto quei due metodi, e probabilmente arrivi a capire perché le due funzioni non vengono richiamate.
    Installa Forum HTML.it Toolset per una fruizione ottimale 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.