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 :

[POO] Comment ajouter des méthodes à un objet DIV ?


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [POO] Comment ajouter des méthodes à un objet DIV ?
    Bonjour,

    je cherche à ajouter des fonctionnalités aux objets DIV de façon à me faciliter la vie.
    Exemple : je voudrai créer une méthode à la classe correspondante pour définir la transparence.
    Pour cela, j'ai écrit le bout de code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Object.prototype.setOpacity = function(p_val) {
    	if(isIE()) {
    		this.style.filter = "alpha(opacity = "+p_val*100+")";
    	} else {
    		this.style.opacity = p_val;
    	}
    }
    sous Firefox, tout fonctionne bien lorsque je fais un appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementById("BALISE_DIV").setOpacity(0.5);
    Par contre sous IE, j'ai l'erreur suivante :
    Cet objet ne gère pas cette propriété ou cette méthode.
    Est-ce que quelqu'un pourrait m'aider à mettre en place ce fonctionnement pour qu'il soit opérationnel sous IE ?

    Merci d'avance.

  2. #2
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 374
    Points
    374
    Par défaut
    Il ne faut surtout pas étendre l'objet Object

    En principe tu dois pouvoir étendre Element, mais ça plantera surement sous IE. Tu as beaucoup d'élements à étendre ou simplement un seul?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Effectivement avec Element, ca marche toujours sous Firefox mais IE n'aime pas.
    J'ai régardé dans les propriétés des balises Div et sous IE, il y a className=""...

    et je cherche à avoir une mini-librairie pour pouvoir utiliser cette structure sur toutes les pages de mon site. Je pensais que l'utilisation de .prototype était appropriée pour cela afin de trouver un comportement se rapprochant de l'objet davantage que de faire des appels en utilisant la méthode call(), du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setOpacity.call(getElementById("BALISE_DIV"), 0.5);

Discussions similaires

  1. comment ajouter des méthodes à une classe lors Runtime?
    Par revever dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 31/03/2008, 13h53
  2. Ajouter un méthode à un objet
    Par norvel dans le forum Access
    Réponses: 2
    Dernier message: 03/10/2005, 16h50
  3. [dbExpress et mysql] Comment ajouter des connexions ?
    Par servlet1 dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/09/2005, 09h38
  4. [EXPORT] Comment ajouter des packages au .jar ?
    Par djskyz dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 23h23
  5. [debutant] Comment ajouter des .class ?
    Par Slein dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/04/2004, 14h30

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