me semble écrire régulièrement le code jQuery d'un modèle similaire à ceci:jQuery: Fade Out - Do Something - Fondu Motif
Fade Out ==> Do Something Dans les coulisses ==> Fade In
Illustrated ci-dessous:
/// <reference path="jquery-1.4.2.js" />
/// <reference path="jquery-1.4.2-vsdoc.js" />
/// <reference path="jquery.validate-vsdoc.js" />
var fade = "slow";
$(document).ready(function() {
// Some event occurs
$("#Trigger").change(function() {
var id = $(this).find(":selected").val();
// Fade out target while I do something
$("#Target").fadeOut(fade, function() {
if (id != "") {
// Do Something
$("#Target").load(
"/Site/Controller/Action/"+id, null,
function() {
// Fade in Target
$("#Target").fadeIn(fade);
});
}
});
});
});
cela fonctionne très bien, mais la hiérarchie de rappel devient assez profond et Je me demande s'il y a un moyen plus facile de le faire ou une meilleure technique qui ne donne pas lieu à tant de niveaux de callbacks
L'étape Do Something est-elle assez rapide ou prend-elle du temps? – hookedonwinter
Hm, cela peut prendre du temps selon la plupart du temps, ce sera assez rapide mais je ne peux pas garauntee que ce sera toujours instantané – TJB
Ne devrait pas $ ("# Target"). FadeIn (fade) 'être appelé indépendamment de si 'id! = '''? – Eric