Accueil > Forum > > > > Problème de débutant en javascript: evenement fonction
Problème de débutant en javascript: evenement fonction
vendredi 23 mai 2008 à 15:30:03 |
Problème de débutant en javascript: evenement fonction

gillespockpock
|
Voici mon code (la classe Designer): Designer = function(){ this.dom=document.getElementById("area"); this.tables=[]; this.ajouterTable = function(){ this.placerTable(); //this.dom.removeEventListener("click",this.placerTable,false); } this.placerTable = function(){ var table = new Table (this,"Nouvelle table");//crée une table table.initialiser(); this.tables.push(table); alert("c'est fait"); } } Si je fais: var d = new Designer();d.ajouterTable();J'obtiens "C'est fait" (ça marche), mais si je modifie la fonction ajouterTable() comme ceci: this.ajouterTable = function(){ //this.placerTable(); this.dom.removeEventListener("click",this.placerTable,false); } lorsque je clique, la fonction placerTable() est bien appellée mais ne va pas jusque au bout, elle semble bloquer sur la ligne "table.initialiser(); ". POURQUOI ? Ma classe "Table" est bien programmée, ca semble venir de l'evenement. 
|
|
vendredi 23 mai 2008 à 15:35:19 |
Re : Problème de débutant en javascript: evenement fonction

gillespockpock
|
Pardon c'est ici le bon code: Voici mon code (la classe Designer): Designer = function(){ this.dom=document.getElementById("area"); this.tables=[]; this.ajouterTable = function(){ this.placerTable(); //this.dom.addEventListener("click",this.placerTable,false); } this.placerTable = function(){ var table = new Table (this,"Nouvelle table");//crée une table table.initialiser(); this.tables.push(table); alert("c'est fait"); } } Si je fais: var d = new Designer();d.ajouterTable();J'obtiens "C'est fait" (ça marche), mais si je modifie la fonction ajouterTable() comme ceci: this.ajouterTable = function(){ //this.placerTable(); this.dom.addEventListener("click",this.placerTable,false); } lorsque je clique, la fonction placerTable() est bien appellée mais ne va pas jusque au bout, elle semble bloquer sur la ligne "table.initialiser(); ". POURQUOI ? Ma classe "Table" est bien programmée, ca semble venir de l'evenement. 
|
|
vendredi 23 mai 2008 à 15:53:42 |
Re : Problème de débutant en javascript: evenement fonction

ralecul
|
Salut,
Marre de redire toujours les mêmes choses...
Designer = new function(){ var _dom = document.getElementById("area"); var _tables = []; var _that = this; this.ajouterTable = function(){ _dom.addEventListener("click", function() { _that.placerTable(); }, false); } this.placerTable = function(){ var table = new Table (this, "Nouvelle table");//crée une table table.initialiser(); _tables.push(table); alert("c'est fait"); } }
Bon pour la peine le code n'est pas testé !
|
|
vendredi 23 mai 2008 à 16:05:30 |
Re : Problème de débutant en javascript: evenement fonction

ralecul
|
Ou si placerTable n'a pas besoin d'être publique :
Designer = new function(){ var _dom = document.getElementById("area"); var _tables = []; var _that = this; this.ajouterTable = function(){ _dom.addEventListener("click", placerTable, false); } function placerTable(){ var table = new Table (this, "Nouvelle table");//crée une table table.initialiser(); _tables.push(table); alert("c'est fait"); } }
|
|
vendredi 23 mai 2008 à 16:53:08 |
Re : Problème de débutant en javascript: evenement fonction

gillespockpock
|
Non ce n'est pas ce que je veux, mais j'ai trouvé, il faut faire un bind(): j'ai ajouté cette fonction: function bind(objet, methode) { //fonction réalisant l'exécution de la méthode dans le contexte de son objet associé return function() { return methode.apply(objet, arguments); } } je l'ai appellée ici: this.ajouterTable = function(){ this.dom.addEventListener("click", bind(this,this.placerTable),false); } Ca marche ! Lol _that=this, pourquoi pas!  merci quand même
|
|
Cette discussion est classée dans : fonction, function, table, placertable, ajoutertable
Répondre à ce message
Sujets en rapport avec ce message
fonction javascript [ par phil ]
Bonjourvoici mon pb: function changeFrame(frame1,frame2){ top.nomdeframe1.location=frame1 top.nomdeframe2.location=frame2 comment doit-on écrire ce sc
function afficher(calque) [ par biloui59 ]
Salut tt le mondeje ne comprends pas pourquoi la fonction suivante ne marche pas:function afficher(calque) { for(i=1;i nom=calque"+i+"; document.get
Tri d'une table en fonction du click sur une colonne [ par manutu ]
salut a tousj ai un problème. J'ai une table avec plusieurs colonnes. Je dois trier la table par défaut sur la premiere et ensuite sur la colonne sur
appelle d'un fonction d'une iframe [ par davwart ]
BOnjour à tous.. j'ai un petit probleme avec un appel de fonction,je m'explique : j'ai un document qui contient une iframe "correctionFrame" , dans la
nom de la fonction exécutée [ par franz ]
Bonjour j'aimerais savoir s'il existe un moyen pour connaître le nom de la function dans laquelle je me trouve.ex:function toto(){ alert("Nom de la
onkeypress = function sous IE ne fonctionne pas, une autre solution? [ par maelob ]
Bonjour à tous,comme expliquer dans ce sujet : http://www.javascriptfr.com/infomsg_FONCTION-REPLACE-EMULER-CAPS-LOCK_1069004.aspx#7Je suis en train de
Fonction a # variable [ par Teclis01 ]
Bonjour,je voulais juste savoir si on pouvait faire des fonctions qui ont un nombre de parametres d'entrées variable. Par exemple :function alerter(sT
Connaitre la fin d'une fonction [ par Angelblade ]
Bonjour à tous, je vais essayer de vous expliquer mon souci ^^'.Je veux pouvoir répéter une portion de code tous les X ms et une fois que le code a ét
Prblème de function [ par tepe ]
BonjourJ'ai un problème avec une fonction externe.Dans mon ReFrame();popup(); Le problème, la fonction ReFrame f
Appel d'une fonction avec window.opener [ par lowkey ]
Salut à tous !J'ai une page : page.php avec une fonction :function gor(){ alert('ok');}J'ouvre un popup avec : function WindowChangeRoomm(page,inter
Livres en rapport
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|