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 :

Passer un array à travers des fonctions


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte sys d'info géographique
    Inscrit en
    Juin 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Architecte sys d'info géographique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2011
    Messages : 60
    Points : 29
    Points
    29
    Par défaut Passer un array à travers des fonctions
    Bonjour. Je souhaite faire passer l'array 'feature' qui n'est pas une variable, en cliquant sur le bouton godeleteobject.

    mon code est le suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function _activatePointManage(feature) {
    console.log(feature); console.log('ask3');
    $("#godeleteobject").on('click', function(evt, feature) {
    console.log(this); console.log('ask5');
    evt.stopImmediatePropagation();
    console.log(feature); console.log('ask4');
    le resultat :
    ask3 donne l'array javascript que je souhaite.
    ask5 contient un objet : juste le bouton, 'this' avait été demandé. c'était un test
    ask4 ne contient rien : undefined alors que "feature" avait été demandé

    Merci de votre attention.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 657
    Points
    44 657
    Par défaut
    Bonjour,
    ton code est illisible mais que ce passe t-il avec une indentation le rendant lisible ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function _activatePointManage(feature) {                        // (1)
        console.log(feature);                                       // (2)
        console.log('ask3');
        $("#godeleteobject").on('click', function(evt, feature) {   // (3)
            console.log(this);
            console.log('ask5');
            evt.stopImmediatePropagation();
            console.log(feature);                                   // (4)
            console.log('ask4');
        });
    }
    en (1) tu passes en paramètre à ta fonction feature.
    en (2) tu affiches le paramètre transmis à la fonction
    ...
    en (3) tu passes en paramètre à ta fonction feature, attention il n'a rien à voir avec celui du (1)
    en (4) tu affiches le paramètre transmis à la fonction mais ce n'est pas le même qu'en (1) c'est celui de (3)

    Pour que cela fonctionne il te faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function _activatePointManage(feature) {                        // (1)
        console.log(feature);                                       // (2)
        console.log('ask3');
        $("#godeleteobject").on('click', function(evt) {
            console.log(this);
            console.log('ask5');
            evt.stopImmediatePropagation();
            console.log(feature);                                   // (3)
            console.log('ask4');
        });
    }
    là en (3) tu affiches le paramètre passé à la fonction en (1), feature est dans le scope.

    PS : j'ai oublié un point important pour la compréhension, attendu que tu utilises jQuery, si tu veux passer des paramètres à ta fonction sur le on il te faut le faire de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#godeleteobject").on('click', feature, function(evt)  {
        console.log(feature);
    });

Discussions similaires

  1. Passer des fonctions de mon script local sur une machine distante
    Par leon1983 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 28/01/2013, 11h27
  2. passer un Array Dynamic à une fonction
    Par steph41200 dans le forum Débuter
    Réponses: 3
    Dernier message: 09/07/2012, 00h11
  3. Passer des fonctions aux objets ?
    Par thibaud74 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/02/2010, 21h20
  4. Passer un argument a une fonction a traver URL
    Par sitirna dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/02/2009, 16h07
  5. Tout ce qui selon vous doit passer par des fonctions
    Par Mat_DZ dans le forum Langages de programmation
    Réponses: 22
    Dernier message: 13/11/2006, 11h50

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