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
el.onclick = function([param]){}; [ par xactise ]
Bonjour à tous. je vous expose mon problème. J'intéroge une base de donnée avec ajax, je récupère les donnée souhaité au format JSON, et j'utilise c
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
Livres en rapport
|
Derniers Blogs
[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|