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 :

Exécuter javascript sur un élément chargé avec $.ajax


Sujet :

jQuery

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 8
    Par défaut Exécuter javascript sur un élément chargé avec $.ajax
    Bonjour à tous,

    J'essaye depuis quelques heures de faire fonctionner un script JS ; le contexte :
    Au clic d'un lien, je charge un contenu d'une page ajax-content.php via la méthode $.ajax.
    Le contenu apparaît sur la page, jusque là aucun soucis.

    Dans ce contenu, j'ai un bouton MODAL ( bootstrap ) qui ouvre un modal dans lequel est censé se trouver une timeline animé en JS/JSON.

    Le problème :

    Ma timeline ne fonctionne pas car le script JS qui gère la timeline ne s’exécute pas.
    Si je place le code HTML de ma timeline sur l'index.php ( donc sans chargement ajax ), la timeline fonctionne donc le problème vient bien du fait que le script ne s’exécute pas sur un contenu chargé.

    CE QUE J'AI ESSAYE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("body").on("load", "myModal", function(event) { // on load du modal
       // le script qui initialise la timeline
    });

    Ca ne fonctionne pas

    Merci d'avance pour votre aide !!

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    l'attribution d'evenement avec on par délégation doit se faire à partir d'un element existant sur la page au moment du chargement
    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
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 8
    Par défaut
    Merci pour ta réponse.

    J'ai donc essayé avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $('body').on("load","#histoire-sr",function(){
       $(this).find("#timeline").timeCube({
            data: json,
            granularity: "year",
            startDate: new Date('August 31, 2009 10:20:00 pm GMT+0'),
            endDate: new Date('September 30, 2011 02:20:00 am GMT+0'),
            transitionAngle: 60,
            transitionSpacing: 100,
            nextButton: $("#next-link"),
            previousButton: $("#prev-link"),
            showDate: false
        });
    });
    histoire-sr étant un bloc directement codé dans mon index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="histoire-sr" class="col-lg-4"></div>
    Ca ne fonctionne pas

    EDIT : J'ai l'impression que c'est l’événement "load" qui ne fonctionne pas.
    En essayant avec par exemple "mouseover" ou " click", ça fonctionne niquel.
    Par contre avec load ça ne fait rien.

  4. #4
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    body ...
    tu charges un body complet en ajax ?
    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 !

Discussions similaires

  1. XSD - attribut sur un élément simple avec restriction
    Par melleb dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 29/03/2013, 11h27
  2. [AJAX] Cacher un élément chargé en ajax à son chargement
    Par Kaaribou dans le forum jQuery
    Réponses: 3
    Dernier message: 13/03/2013, 14h55
  3. Réponses: 4
    Dernier message: 22/08/2012, 11h37
  4. Centrer sur un élément actif avec un HGroup
    Par black is beautiful dans le forum Flex
    Réponses: 0
    Dernier message: 27/02/2010, 14h21
  5. [AJAX] Appel d'une fonction javascript dans une page chargée en ajax
    Par baedal dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 17/04/2008, 17h03

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