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 :

Retour de la fonction load


Sujet :

jQuery

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut Retour de la fonction load
    Si je charge ce template html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div>
    <p>bla</p>
    </div>
    avec la fonction load de jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('monSelecteur').load('template');
    J'aurai accès dans $('monSelecteur') qu'au premier niveau de l'arbre que j'ai chargé (ici une balise div).

    J'en déduis que ce n'est pas un objet DOM qui est retourné par la fonction mais de l'html pur et dur.

    Existe - t - il un moyen de récupérer tout le template sous forme d'objet tout de suite ?

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Peux-tu être plus explicite quand à ta question et ce que tu veux faire?

    load(fn), permet de déclencher une fonction après le chargement de l'élément cible et de son contenu. load() renvoit un objet jQuery permettant de faire du chaînage.

    A+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut
    Si je reprends mon exemple simplifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Mon template : 
     
    <p>bla</p>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var test = $('<div/>');
    test.load('monTemplate');
    console.log($(test)); //j'ai le div
    console.log($(test).children()); //pas de résultat alors que je devrais avoir le <p/>
    Suis - je clair ?

    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re,

    monTemplate est ta fonction ?
    Es-tu sur qu'elle est effectivement déclenchée?

    Voici un essai avec le chargement d'une image

    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
    <head>
        <title>load(fn)</title>
        <style type="text/css">
        </style>
     
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
        <script type="text/javascript">
        var src = "http://www.paris.diplo.de/Vertretung/paris/fr/Startseite__Elemente/2009__Dossier__20__ans/Image__Porte__de__Brandebourg__bild,property=Galeriebild__gross.jpg";
        $(document).ready(function(){
     
            $('<div id="newDiv"><img src="' + src + '"/><p>le paragraphe</p></div>').appendTo($("#conteneur"));
            $("img").load(function(){
                console.log("C'est ok!");
                console.log($(this).parent());
                console.log($(this).siblings());
            });
        });
        </script>
    </head>
    <body>
        <div id="conteneur"></div>
     
    </body>
    </html>
    a+

  5. #5
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Citation Envoyé par Tristan Zwingelstein Voir le message
    Si je reprends mon exemple simplifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Mon template : 
     
    <p>bla</p>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var test = $('<div/>');
    test.load('monTemplate');
    console.log($(test));
    console.log($(test).children());
    Suis - je clair ?

    merci
    Salut,

    load est un appel Ajax asynchrone, c'est à dire que le résultat n'est pas encore
    arrivé lorsque tu fais tes console.log

    Essaie ainsi:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var test = $('<div/>');
    test.load('monTemplate', function() {
      console.log(test); //j'ai le div
      console.log(test.children()); //pas de résultat alors que je devrais avoir le <p/>
    });

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

Discussions similaires

  1. PL/SQL retour d'une fonction
    Par aaronw dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/12/2005, 13h25
  2. [Oracle 9.1] Types de retour d'une fonction PL/SQL
    Par ftrifiro dans le forum PL/SQL
    Réponses: 8
    Dernier message: 12/10/2005, 16h54
  3. [DOM XML] Erreur fonction load() d'un objet dom??
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h43
  4. valeur de retour de la fonction "system" en C
    Par benhoeil dans le forum C
    Réponses: 14
    Dernier message: 16/09/2005, 11h30
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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