2011-12-18 12 views
7

Sto tentando di ritardare l'aggiunta di una classe utilizzando jquery. Tutto il codice funziona bene ma vorrei ritardare lo .addClass('hideText') fino a quando la funzione di passaggio del mouse non è completa, qualcuno potrebbe mostrarmi come farlo per favore?jQuery Animation Delay Aggiunta di una classe

Ecco il codice:

$(document).ready(function() { 

$('.listing div').addClass('hideText'); 

$('.listing div').hover(

function() { 
    $(this) 
    .stop(true) 
    .removeClass('hideText') 
    .animate(
     {top: '0'}, 
     {duration: 300, easing: 'linear', queue: false} 
    ) 
    }, 
    function() { 
     $(this) 
     .stop(true) 
     .animate(
      {top: '150px'}, 
      {duration: 300, easing: 'linear', queue: false} 
     ) 
     .addClass('hideText') 
    }); 

});

risposta

2

Posizionare la linea .addClass() in una richiamata:

$(document).ready(function() { 

$('.listing div').addClass('hideText'); 

$('.listing div').hover(

function() { 
    $(this) 
    .stop(true) 
    .removeClass('hideText') 
    .animate(
     {top: '0'}, 
     {duration: 300, easing: 'linear', queue: false} 
    ) 
    }, 
    function() { 
     $(this) 
     .stop(true) 
     .animate(
      {top: '150px'}, 
      {duration: 300, easing: 'linear', queue: false}, 
      function() { 
       $(this).addClass('hideText'); 
      } 
     ); 
    }); 
}); 
+1

Ciao grazie per l'aiuto, purtroppo non ha funzionato. Il .listing div si anima ancora su e giù bene, e la classe .hideText viene aggiunta e rimossa inizialmente ma non viene aggiunta dopo il completamento dell'animazione. – Gareth

+0

Fornire un collegamento a un esempio. – Interrobang

0

Hai provato in coda la funzione come questa?

function() { 
     $(this).stop(true).queue(function (next) { 
      .animate(
       {top: '150px'}, 
       {duration: 300, easing: 'linear', queue: false}, 
      next(); 
     }) 
     function() { 
      $(this).addClass('hideText'); 
     } 
    }); 
+0

Ciao Keith. Scusa, è passato tanto tempo da quando ho dimenticato come ho risolto. Grazie per aver trovato il tempo di rispondere però. – Gareth