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 :

Fonctions qui ne se lancent pas en AJAX [AJAX]


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 61
    Points : 26
    Points
    26
    Par défaut Fonctions qui ne se lancent pas en AJAX
    J'essaye de refactoriser mon code, mais les fonctions en commentaires ne fonctionnent pas :

    les fonctions suivantes ne se lancent pas dans l'appel ajax, pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
            /* function loadingInit() {
                $('#loader').fadeIn();
                $('section').html(result);
                $('section').css('opacity', '0');
            } */
     
            /* function loadingEnd() {
                $('#loader').fadeOut();
                $('section').fadeTo(500, 1);
            } */
     
            function appelAjax() {
     
                // Chargement de la page appelé avec index.html
     
                $.ajax({
                    url: "pages/accueil.html", success: function (result) {
                        // on affiche le loader et commence le chargement des photos en le cachant
                        $('#loader').fadeIn();
                        $('section').html(result);
                        $('section').css('opacity', '0');
                        /* loadingInit(); */
                        // lorsque le chargement des photos est terminé, on cache le gif et modifie l'opacité de la section pour afficher les photos
                        $('.fotorama').on('fotorama:ready', function () {
                            $('#loader').fadeOut();
                            $('section').fadeTo(500, 1);
                            /* loadingEnd(); */
                        });
                        ajouterTitre();
                    }
                });
    vous avez une idée pourquoi ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    regarde plutot la syntaxe de $.ajax :

    http://api.jquery.com/jquery.ajax/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jQuery.ajax( url [, settings ] )
    La tienne n'est pas correcte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $.ajax({
                    url: "pages/accueil.html",
    tu as mis l'url dans ton json de paramètres ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    merci pour ta réponse

    je regarde la doc et je trouve cette syntaxe :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $.ajax({
      url: "test.html",
      context: document.body
    }).done(function() {
      $( this ).addClass( "done" );
    });
    sur un autre doc je trouve ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $.ajax('index.html', {
      success: function(response) {
        $('.hello-world').html(response);
      }
    });
    ce qui correspond plus à ma construction. En effet, je pourrais écrire comme ça, je vais tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $.ajax(
                        "pages/accueil.html", {success: function (result) {
                            $('#loader').fadeIn();
                            $('section').html(result);
                            $('section').css('opacity', '0');
                            $('.fotorama').on('fotorama:ready', function () {
                                $('#loader').fadeOut();
                                $('section').fadeTo(500, 1);
                            });
                            ajouterTitre();
    Cependant, mon code fonctionnait super jusqu'à présent, pourquoi il fonctionnait si ma syntaxe était fausse ? C'était juste la refactorisation qui m'était impossible, mais le code initial me chargeait ce que je voulais : je veux insérer dans la balise section de ma page index le contenu de accueil.html dans ma balise section.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    la technique Ajax est par défaut asynchrone, donc il ne te faut pas mettre $('#loader').fadeIn() à l'intérieur de celle-ci mais avant.
    Dans le même esprit, ton appel $('#loader').fadeOut() est à mettre dans le always de la requête.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    merci pour ta réponse

    placer le à l'intérieur de l'AJAX me permet justement de faire ce fadeIn au moment où le code html que je souhaite est bien chargé par ajax. Je trouve cela assez pratique. j'avoue que je ne comprends pas bien ta réponse, le concept asynchrone et de "always". je vais faire plus de recherches ...

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    En regardant rapidement ton site, donnée dans ton autre discussion, il semblerait que tu ais résolu ton problème, ou que je n'ai pas vu où il se situé.
    Quand est-il?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 61
    Points : 26
    Points
    26
    Par défaut
    Oui, désolé, le sujet est résolu, voici ce que j'ai fait

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
            function loadingPage(result) {
                // on affiche le loader et commence le chargement des photos en le cachant
                $('#loader').fadeIn();
                $('section').html(result);
                $('section').css('opacity', '0');
                // lorsque le chargement des photos est terminé, on cache le gif et modifie l'opacité de la section pour afficher les photos
                $('.fotorama').on('fotorama:ready', function () {
                    $('#loader').fadeOut();
                    $('section').fadeTo(500, 1);
                });
            }
     
     
            /* function appelAjax() { */
     
            // Chargement de la page appelé avec index.html
     
            $.ajax({
                url: "pages/accueil.php", success: function (result) {
                    loadingPage(result);
                    ajouterTitre();
                }
            });

    il me manquait l'argument à passer dans la fonction

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/08/2007, 16h47
  2. Fonction qui ne s'execute pas
    Par RegiO dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/07/2006, 09h45
  3. [Surnaturel] Une fonction qui marche en débug, pas en release
    Par 10_GOTO_10 dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/07/2006, 14h22
  4. fonction qui ne s'execute pas mais qui ne retourne pas d'erreur
    Par duplo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/06/2006, 21h43
  5. déclencheurs qui ne se lancent pas - pb messages
    Par marie253 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/08/2004, 15h19

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