Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks
Bibliothèques & Frameworks Forum d'entraide sur les frameworks et bibliothèques JavaScript (jQuery, Mootools, Prototype, Script.aculo.us, etc.). Avant de poster : Cours Frameworks JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/08/2011, 23h16   #1
Membre confirmé
 
Avatar de Gregory.M
 
Inscription : novembre 2007
Messages : 684
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 684
Points : 260
Points : 260
Par défaut des classes

Bonjour,

J'utilise CoffeeScript pour me générer du javascript. Je suis en train de créer une classe appelé Tank, et je tombe sur une erreur que je ne comprends pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
var Tank;
Tank = (function() {
  function Tank() {
    this.section = $("section");
    this.tank = $("<div>");
    this.tank.appendTo(this.section);
    this.tank.bind("touchstart mousedown click", function(e) { 
      this.tank.toggleClass("active"); // Erreur ici
      return this.tank.bind("touchend mouseup", function() {
        return this.toggleClass("active");
      });
    });
  }
  return Tank;
})();
t = new Tank();
J'obtiens l'erreur suivante:
Code :
1
2
 
TypeError: 'undefined' is not an object (evaluating 'this.tank.toggleClass')
Pourquoi j'obtiens cette erreur ici alors que le binding sur ce même élément vient de se faire une ligne plus haut?

Gregory
Gregory.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 10h57   #2
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 451
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 451
Points : 2 150
Points : 2 150
Parce que le "this" n'est pas du tout dans le même contexte.

Tu viens de créer une nouvelle fonction et le this correspond à cette fonction.
Loceka est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 12h11   #3
Membre confirmé
 
Avatar de Gregory.M
 
Inscription : novembre 2007
Messages : 684
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 684
Points : 260
Points : 260
Citation:
Envoyé par Loceka Voir le message
Parce que le "this" n'est pas du tout dans le même contexte.

Tu viens de créer une nouvelle fonction et le this correspond à cette fonction.
Merci pour l'explication.
Y a t-il une solution propre pour contourner cela?
Gregory.M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 10h58   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 032
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 032
Points : 45 129
Points : 45 129
me=this en debut de fonction
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h33.


 
 
 
 
Partenaires

Hébergement Web