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 :

jQuery .load() + .clone()


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Fidji

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2015
    Messages : 19
    Par défaut jQuery .load() + .clone()
    Bonjour, j'aimerais cloner sur mon site un contenu qui est chargé à l'aide d'Ajax avec ".load()", voici le code HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="mesimageschargees"></div>
    <div id="monimageclonee"></div>
    et le code JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $( "#mesimageschargees" ).load( "/mapageloadee.html" );
    $( "#mesimageschargees img" ).click(function() {
      $( "#monimageclonee img" ).remove();
      $(this).clone().appendTo("#monimageclonee");
    });
    Au final l'image n'est pas clonée. Par contre si j'utilise le même code mais sans AJAX alors l'image est clonée.. Une solution ? Merci d'avance !

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    C'est tout à fait normal, la fonction .load() va charger de façon asynchrone du contenu HTML. Ca veut dire que ton code va exécuter l'instruction qui suit sans attendre d'avoir reçu le HTML attendu, du coup, le gestionnaire d'événement que tu déclares derrière ne s'applique pas aux éléments qui vont apparaitre dans le code quand la requête AJAX aura reçu la réponse. Mais si tu regardes la signature de .load() dans la doc, tu verras qu'elle peut prendre en paramètre une fonction de rappel qui s'exécutera dès que la requête aura répondu.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Fidji

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2015
    Messages : 19
    Par défaut
    Merci pour ta réponse !
    Cela marche avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $( "#mesimageschargees" ).load( "/mapageloadee.html" , function(){
    $( "#mesimageschargees img" ).click(function() {
      $( "#monimageclonee img" ).remove();
      $(this).clone().appendTo("#monimageclonee");
    });
    });
    On ne peut pas charger load de manière synchrone, en revanche on peut outre-passer en faisant passer la fonction à "l'intérrieur" du .load().

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

Discussions similaires

  1. jquery load et appel de fancybox
    Par freaks dans le forum jQuery
    Réponses: 0
    Dernier message: 21/05/2012, 22h18
  2. jquery load() cross domain
    Par ratafia77 dans le forum jQuery
    Réponses: 8
    Dernier message: 27/03/2012, 17h15
  3. Problème de session en utilisant jQuery.load()
    Par ilalaina dans le forum CodeIgniter
    Réponses: 2
    Dernier message: 18/01/2010, 09h41
  4. jQuery (load) et Lightbox 2.04
    Par Rifton007 dans le forum jQuery
    Réponses: 4
    Dernier message: 17/06/2009, 00h27

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