2010-01-19 5 views
0

Je suis plutôt nouveau à jQuery et j'ai une petite question.jQuery, Attendre une autre fonction

J'ai deux fonctions jQuery tous deux semble commencer onload, mais je veux retarder une fonction jusqu'à ce que la première fonction est terminée:

$(document).ready(function() { 
//DO SOME AJAX STUFF HERE AND CALL FUNCTION TWO BELOW WHEN DONE 
}); 

jQuery(document).ready(function() { 
    jQuery('#mycarousel').jcarousel({    
     itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback } 
    }); 
}); 

Répondre

1

La méthode Ajax jQuery a un paramètre de rappel que vous pouvez utiliser pour spécifier une fonction qui doit être appelée lorsque la demande est terminée. Par exemple:

$(function() 
{ 
    $.ajax('url', {}, function(data) 
    { 
     // Do your stuff here. 
    }, 'json'); 
}); 

Notez également que $(function()... est équivalente à $(document).ready(function()... mais est plus concis!

+0

Merci à tous Je vais tenter le coup. – Fox

2

Vous devriez appeler la deuxième fonction du rappel de la première fonction ajax.

Par exemple:

$(document).ready(function() { 
    MyAjaxMethod(function() { 

     jQuery('#mycarousel').jcarousel({    
      itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback } 
     }); 

    }); 
} 
+0

Ok, attendez, laissez-moi essayer. Merci – Fox

1

Toutes les fonctions Ajax callbacks qui sont exécutées lorsque le traitement est terminé. C'est la manière recommandée de faire les choses dans jQuery.

Par exemple:

$("selector").load(url, function() { 
    // Put your second function here 
}); 
1

$.get et $.post et les deux permettent callbacks:

jQuery.post(url, [data], [callback], [type]) 

donc obtenir la méthode Jcarousel pour exécuter une fois que le poste a complété:

$(document).ready(function() { 
    $.post(url, data, function(
     jQuery('#mycarousel').jcarousel({    
     itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback } 
    }); 

    )); 
}); 
Questions connexes