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

JavaScript Discussion :

Appel à une fonction interne à un objet javascipt depuis cet objet


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut Appel à une fonction interne à un objet javascipt depuis cet objet
    Bonjour

    J'ai bien conscience que le titre n'est pas très clair donc rien ne vaut un exemple

    J'ai un objet qui doit gérer des dossiers (un dossier est un élément d'une base de données)
    Dans l'exemple qui suit, j'ai donc un objet javascript qui doit gérer les dossiers et notamment afficher le contenu du dossier, de façon récursive
    le paramètre qui lui est envoyé est un json issu d'un appel en ajax

    J'ai donc la fonction javascript

    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
    function gestion_dossier(obj_parent) {
     
            this.obj_parent = obj_parent;
     
            this.affichage_liste_dossier = function( json ) {
                var item = "";
                item += affichage_liste_dossier_recursif(objet);
                $(this.obj_parent).append(item);
            }
     
            this.affichage_liste_dossier_recursif = function( json )  {
                var item = '';      
                for(var key in json) {
                    var val = json[key];
                    item += '<div id="'+val.id+'">'+val.lib;
                    item += affichage_liste_dossier_recursif(val.enf);
                    item += '</div>';
                }
                return item;
            }
    }
    Ce code ne fonctionne pas (évidemment) et de façon générale, les appels à une fonction située au même niveau (Appel à affichage_liste_dossier_recursif depuis affichage_liste_dossier).

    Comment puis je faire pour que cet appel fonctionne ? (je découvre javascript)
    Merci de votre aide
    actiproj

  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
    Comment puis je faire pour que cet appel fonctionne ?
    Il suffit d'expliquer gentiment à JavaScript que tu ne cherches pas à appeler une fonction globale mais une méthode de ton objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item += this.affichage_liste_dossier_recursif(objet);
    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
    Analyste programmeur
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut
    Merci, je viens de me rendre compte que mon problème réel venait non pas de mes appels (car j'avais bien testé le this au préalable), mais d'un problème avec les ',' qui manquait


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function gestion_document_image_gestion_dossier(obj_parent) {
        this.obj_parent = obj_parent,
        this.affichage_liste_dossier = function( json ) {
        ...
    },
    ...
    Etre bloqué depuis 1 heure sur un problème aussi simple, ça n'a pas de prix ...

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Utilise des points-virgules, pas des virgules

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

Discussions similaires

  1. [Débutant] Appeller une fonction de la page aspx depuis un control ascx
    Par Alegreg dans le forum ASP.NET
    Réponses: 19
    Dernier message: 24/03/2015, 15h38
  2. [XL-2003] Appeler une fonction Javascript sur un site depuis VBA
    Par zneidi77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/06/2012, 09h37
  3. [SQL-Server] Comment appeller une fonction stockée en MS SQLServer depuis PHP ?
    Par momoG dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/12/2008, 16h11
  4. Appeler une fonction d'un fichier SWF depuis un Form VB6
    Par Silk_do_Nadear dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 03/04/2007, 07h25
  5. Appeler une fonction d'un script PHP depuis HTML
    Par barthelv dans le forum Langage
    Réponses: 31
    Dernier message: 27/12/2005, 11h25

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