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 :

supprimer evenement onclick => detachEvent gadget pour sidebar


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut supprimer evenement onclick => detachEvent gadget pour sidebar
    Bonjour,

    Je suis en train de développer un gadget pour la sidebar de windows.
    J'arrive à attacher un evenement avec attachEvent, mais je n'arrive pas à le détacher une fois qu'il a été attaché...

    Voici mon code:
    le js:
    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
     
    function activeFly()
    {
    	System.Gadget.Flyout.show=true;
    }
     
    function WhenUndocked()
    {
       System.Gadget.beginTransition();
     
       //On desactive le flyout sur le onclick du body
       with(document.body)
       {
    	onclick="function(){void(0)};";
       }
       document.body.detachEvent("onclick",activeFly);
     
     
       System.Gadget.endTransition(System.Gadget.TransitionType.none,0);
    }
     
    function WhenDocked()
    {
    	System.Gadget.beginTransition();
     
    	//On reactive le flyout sur le onclick du body
    	document.body.attachEvent("onclick",activeFly);
     
    	System.Gadget.endTransition(System.Gadget.TransitionType.none,0);
    }
    Et le html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body onclick="activeFly();">
    ...
    </body>
    Au chargement, le flyout(apparition d'une fenetre sur le coté du gadget) est activé grâce au onclick du body.

    Puis si on undock (fais sortir le gadget de la sidebar), je veux désactiver le flyout à l'aide de detachEvent...

    Et si on dock (inverse de undock, cad faire revenir le gadget dans la sidebar) le gadget, je veux reactiver le flyout sur onclick du body...

    En gros:
    Au chargement, le flyout marche, normal grâce au onclick du body...
    Si j'undock grâce à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with(document.body)
       {
    	onclick="function(){void(0)};";
       }
    le flyout se désactive... Jusqu'ici tout va bien.

    Si on redock le gadget, grâce à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.attachEvent("onclick",activeFly);
    le flyout se réactive bien.

    Mais à partir de ce moment là, quand j'undock à nouveau le gadget, le flyout reste activé...
    Malgré la présence du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.detachEvent("onclick",activeFly);

    Je sais pas si j'ai été clair, mais voila mon problème...

    Une idée?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Par défaut
    Je ne suis pas très malin!
    J'ai trouvé une solution bien plus simple et plus fiable...

    Au lieu de m'embeter à enlever l'evenement et le rajouter en fonction de l'etat du gadget, j'ai fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function activeFly()
    {
    	if(System.Gadget.docked==true)
    	{
    		System.Gadget.Flyout.show=true;
    	}
    }
    En gros dans la fonction associée au onclick, je fais un test de l'etat du gadget...

    Je ne sais pas pourquoi je n'ai pas pensé à ca directement!! lol

    Enfin, je met la solution au cas ou quelqu'un fasse la même bêtise que moi!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Evenement onClick pour plusieurs éléments
    Par will74 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/12/2009, 13h45
  2. 2 problèmes pour créer un gadget pour la sidebar
    Par Ratoratatix dans le forum Windows Vista
    Réponses: 8
    Dernier message: 18/01/2009, 20h59
  3. Information pour la creation d'un gadget pour la SideBar Vista
    Par azar121 dans le forum Windows Vista
    Réponses: 0
    Dernier message: 19/12/2007, 12h53
  4. Evenement onclick pour plusieurs listes
    Par martoune dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/06/2007, 17h15
  5. Réponses: 6
    Dernier message: 23/12/2005, 13h51

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