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:
Et le html:
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); }
Au chargement, le flyout(apparition d'une fenetre sur le coté du gadget) est activé grâce au onclick du body.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <body onclick="activeFly();"> ... </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 à :le flyout se désactive... Jusqu'ici tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 with(document.body) { onclick="function(){void(0)};"; }
Si on redock le gadget, grâce à :le flyout se réactive bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.body.attachEvent("onclick",activeFly);
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?
Partager