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 :

Besoin d'aide JS OO


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut Besoin d'aide JS OO
    Hello,

    J'aimerai créer une librarie graphique pour créer un barchart ( je sais qu'il en existe déjà des tas mais ceci est juste dans un but d'apprentissage ).
    J'ai d'en l'idée de créer un objet style jquery ex : monobj("divtoto").createGraph(200,300); j'ai tenté de m'appuyer sur le code jquery pour le faire, mais je n'y arrive pas.

    Voici le début de mon code.
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    (function(window){	
    	var _version= "0.0.1",
    		_canvas;
    	AnimatedGraph = function (className){		
    		return new AnimatedGraph.fn.init(className);
    	};
     
    	AnimatedGraph.fn = AnimatedGraph.prototype = {
    		constructor: AnimatedGraph,	
    		init: function(className){
    			_canvas = AnimatedGraph.search(className);			
    			_canvas.innerHTML = "Youpi";
    		},
    		search: function(className){
    			var elm = document.getElementsByTagName("div");			
    			for(i=0;i<elm.length;i++){
    				if(elm[i].className == className)
    					return elm[i];
    			}
    		},
    		createGraph: function(width,height){
    			var title = document.createElement("div");
    			title.innerHTML="tutu";
    			_canvas.appendChild(title);
    		}
    	};
     
    	return (function(){
    		var ret = new AnimatedGraph();
    		ret.createGraph = createGraph;
    		return ret;
    	});
     
     
    	AnimatedGraph.search = AnimatedGraph.fn.search;
    	function createGraph(width,height){
    		var title = document.createElement("div");
    		title.innerHTML="tutu";
    		_canvas.appendChild(title);
    	};
     
    	window.Graph = AnimatedGraph;	
    })(window);
    Mais si j'exécute Graph('canvas').createGraph(200,300) cela ne marche pas quelqu'un pourrait-il m'aider ?

    D'avance merci

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Si vous voulez créer une librairie graphique avec un fonctionnement "à la jQuery", je vous conseille de lire les quatre tutoriels de Teylor Feliz : Comment créer facilement un framework JavaScript.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut
    Hello Daniel,

    Ah merci beaucoup super, j'avais pas vu ce tutoriel.

    Il va bien me servir pour comprendre certaines notions encore un peu abstraite pour moi :

    Bonne journée

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut
    Alors après avoir lu rapidement, je n'ai pas trouvé l'information dont j'avais besoin.

    En effet j'aimerai faire comme : $('#divid').methode(param) pour faire quelque chose. Avec le code de mon premier message j'arrive bien à avoir un objet du type $('#divid') ex : Graph('canvas') par contre si j'appelle la méthode search qui est sensé appartenir à mon objet soit directement par graph('canvas').search soit par obj = graph('canvas') et obj.search j'ai systématiquement une erreur me disant que la méthode search n'hésiste pas. Ou est-ce que je me suis trompé ?

    d'avance merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Par défaut
    // cette innocente fonction devient un constructeur
    var myClass = function (message) {
    this.publicVariable = 10;
    alert(message);
    return new mySubClass.increment();
    };

    // accès au prototype
    mySubClass = myClass.prototype = {
    constructor: myClass,
    decrement:function() {
    console.log( --this.publicVariable );
    },
    increment:function() {
    console.log( ++this.publicVariable );
    }
    };

    myObject = new myClass();
    myObject.decrement(); // -1
    myObject.decrement(); // -2
    mySubClass.increment(); // 1
    Je ne comprends pas pourquoi sur ce code qui est quasiment comme celui trouver sur un tutoriel, j'obtiens une erreur sur myObject.decrement(); on ca me dit que decrement n'est pas une fonction .

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new mySubClass.increment();
    C'est quoi ce retour du constructeur ?!

Discussions similaires

  1. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  2. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29
  3. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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