Bonjour,
Mes pages sont composées d'une base faisant appel à JQuery. Le contenu est ensuite appelé en AJAX.
Mes pages utilisant AJAX ne fonctionnent pas si je n'appelle pas JQuery : je dois appeler JQuery pour la page de base, et le ré-appeler pour le contenu. Résultat, les pages utilisant JQuery se chargent un peu plus lentement.
Ensuite, quand une page utilisant JQuery est chargée, leJQuery fonctionne mal dans la page principale : FadeIn se termine par visibility : 0. Pourtant, quand la page appelée n'a pas JQuery, FadeIn fonctionne bien.

$(function(){
    $('.ajaxLink').click(function(){
        $.ajax({
            url:$(this).attr('href'),
            cache:true,
            success:function(html){
                $('#content').fadeOut(500,function(){
                    $('#content').empty();
                    $('#content').append(html);
                    $('#content').fadeIn(220);
                });
            }
        });
        return false;
    });
});

Donc mes questions sont :

  • Est-il possible de n'avoir à appeler qu'une fois JQuery, dans la page principale, et que ça exécute aussi le code JQuery dans les pages appelées ? (Et comment ?)
  • Si non, comment éviter d'avoir des QueryStrings dans l'url de mes fichiers javascript appelés deux fois, d'abord par la base et ensuite par la page appelée ? (Déjà qu'appeler deux fois JQuery est lent, alors si la mise en cache ne se fait pas encore en plus....)
  • Toujours si non, comment résoudre mon problème de FadeIn qui se termine par visibility:0; à la fin de sa tâche qui se passe pourtant correctement avant de se terminer ?

Merci pour votre aide.

1 réponse


Spitfire 95
Auteur
Réponse acceptée

En mettant ceci, le problème est résolu :

$('#content').css('opacity', 1);
$('#content').stop().fadeOut(500,function(){
   $('#content').empty();
   $('#content').append(html);
   $('#content').fadeIn(220);
});

Je comprend pas pourquoi ça eu marché et maintenant il faut ajouter ça, mais bon...
Si quelqu'un a une solution pour ne pas importer deux fois jquery ou ne pas avoir de querystring, je suis toujours preneur.
Merci.