IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Navigation Ajax et scripts de la page


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Par défaut Navigation Ajax et scripts de la page
    Bonjour à tous,

    J'ai mis en place une navigation en ajax sur un nouveau projet.

    Sur mon index.php, j'ai une balise :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="contenu"></div>

    Lorsque je clique sur un lien du menu de ma page index.php, cela déclenche la navigation ajax qui effectue le traitement suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#contenu").append("adresse/de/la/page/cible.php");

    Ainsi, je récupère le contenu de mes pages sans recharcher complètement ma page.

    Ce système fonctionne bien sauf que certains composants javascript s'initialisent mal.

    Par exemple, le composant FullCalendar (http://arshaw.com/fullcalendar/) ne s'affiche pas bien. Seul l'en-tête du calendrier s'affiche et il faut que je clique sur la vue désirée pour qu'elle apparaisse alors que normalement une vue est affichée par défaut.
    Dans ce cas précis, ma page cible est composée comme suit :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <link href="fullcalendar.css" rel="stylesheet">
    <link href="fullcalendar.print.css" rel="stylesheet" media="print">
     
    <div id="calendar"></div>
     
    <script src="fullcalendar.min.js"></script>
     
    <script>
    $('#calendar').fullCalendar();
    </script>

    En dehors de la navigation ajax, cela fonctionne bien.

    Et j'ai ce problème avec plusieurs composants.

    J'en appelle donc à votre expertise afin de savoir si certains d'entre vous ont déjà rencontré ce problème et s'ils connaissent une astuce pour que cela se passe bien.

    Merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Par défaut
    J'ai trouvé la cause du problème.

    Lorsque je déclenche le changement de page, je fait comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $(".contenu").fadeOut(500,function(){
            $(".contenu").empty();
            $(".contenu").html("adresse/de/la/page/cible.php");
            $(".contenu").fadeIn(500);
        })
    Si j'enlève les fadeout et fadein pour ne garder que le empty et le html, cela fonctionne parfaitement.
    Le problème est que je perd l'effet de transition entre mes pages...
    Rete à trouver comment faire pour que cela fonctionne en gardant mes effets de transition...
    Si vous avez des idées...

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $(".contenu").fadeOut( 500, function(){
        var jObj = $( this );
     
        // AJAX load()
        // fadeIn() après le chargement et exécution du script
     
        jObj
    	.empty()
    	.load( "adresse/de/la/page/cible.php", function(){
    	   jObj.fadeIn( 500 );
    	});
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Par défaut
    Merci d'avoir pris le temps de me répondre.

    Néanmoins, le résultat est le même avec ce code : la transition de page se fait bien mais les composants JS se chargent mal.

    Je me demande si ce n'est pas parce que les composants ne peuvent pas générer leur contenu sur des div qui sont masqués....

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Si du code doit agir sur les éléments HTML qui viennent d'être chargés il faut utiliser la forme dynamique de la méthode on().

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Navigation Ajax et Script dans Page
    Par CedriZero dans le forum jQuery
    Réponses: 3
    Dernier message: 10/07/2013, 12h45
  2. Réponses: 3
    Dernier message: 02/07/2010, 23h58
  3. [AJAX] Navigation ajax et include de <script>
    Par jejemo dans le forum AJAX
    Réponses: 2
    Dernier message: 15/06/2010, 09h26
  4. [MooTools] Execution de script dans une page ajax généré par mootools
    Par gaet-gaet dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 26/09/2009, 12h28
  5. Non exécution du script js dans page inclue via ajax
    Par clara1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/05/2008, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo