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 :

attribut html onclick et POO javascript


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 9
    Points
    9
    Par défaut attribut html onclick et POO javascript
    Bonjour à tous,

    je vous explique mon problème :

    Je développe une classe javascript permettant de générer le code html d'un tableau 2 dimensions d'entrées (type <input type="text" name="" size=5>) mais également d'y ajouter dynamiquement des lignes et colonnes par les méthodes addLine() et addColumn de ma classe. Lors de la génération du code html je veux ajouter 2 boutons ou 2 images qui permettent d'appeler ces méthodes pour l'élément courant.
    Quelque chose de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //2 links to add lines and columns
    chain+='<input type="button" value="Ajout Ligne" onClick="this.addLine()">';
    chain+='<input type="button" value="Ajout Colonne" onClick="this.addColumn()"><br>';
    Sauf que le this n'est pas reconnu, voila j'aimerais trouver une solution propre, sans "bidouillage" et je connais jQuery donc si quelqu'un connait une solution avec cette librairie je suis preneur.


    Merci d'avance !

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    this est supposé etre quoi ?
    dans ton code this = le bouton

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Ok bah en fait j'ai créé une classe en javascript et dans une méthode de cette classe je génère du html pour appeler une autre méthode (addLine() ou addColumn()). Dans un autre langage on utiliserait tout bêtement this.methode() mais la je vois pas :/

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    passe plutot le this en paramètre à la fonction
    ça te permettra de savoir ou faire le append

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Tu veux dire qu'il faut que je vire addLine() et addColumn() de ma classe et que j'en fasse de fonctions à part prenant en param mon objet ? Ué ca marcherait mais après j'ai plus grand chose dans ma classe :/

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    si tu veux faire de la POO il te faut manipuler des objet et non générer du texte que tu donne au navigateur pour l'interpréter
    car les objets créer alors sont ceux créés par l'interprétation de la chaîne de texte que tu as créé.

    la solution simple c'est de créer tes objets directement.
    dans une méthode de ta classe tu créé les boutons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    creatButtons: function() {
      var button = document.createElement('input');
      button.setAttribute('type', 'button');
      button.setAttribute('value', 'ajouter ligne');
      button.refObject = this;
      button.onclick=function() {
        this.refObject.addLine();
      }
     ...
    }
    onclick est un fonction de l'objet button donc le this à l'intérieur est le bouton
    cet objet à un membre refObject créé par ta méthode creatButtons qui a pour valeur une référence à l'objet qui a créé le bouton
    tu peux donc invoquer dessus la méthode de sa classe.

    le fait de manipuler directement les objets te permets de les manipuler à ta guise et leur mettre les attributs, les membres et les méthodes de ton choix

    alors que si tu en passe par la création de chaîne (qui semple plus concises)
    tu passe par une interprétation du navigateur et donc ne maîtrise pas ce qui sera créé.

    A+JYT

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup sekaijin ta réponse m'a beaucoup aidé ! Allez A+

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

Discussions similaires

  1. [xslt] affecter la valeur d'un attribut HTML
    Par ouioui2000 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/12/2005, 10h49
  2. [HTML]OnClick?? Afficher un calque au click de la souris
    Par Nicos77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/10/2005, 12h17
  3. afficher une phrase dans le HTML a partir du javascript
    Par amelhog dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/08/2005, 17h02
  4. [html][xsl]Problème valeur attribut html
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/04/2005, 13h37
  5. [POO] Javascript et Css
    Par ikkyu_os dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2004, 17h38

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