2017-08-14 4 views
0

J'essaie de désactiver le double-clic sur une étiquette d'aide qui est une ancre pour ouvrir la fenêtre d'aide. Lorsque l'événement onClick() est déclenché une fois, soit par un clic de souris ou en tapant une fois sur le pavé tactile, la méthode help() est invoquée.ZKOSS: onClick() fonctionnant différemment pour le clic de la souris et la souris tap

void help() { 
     flag = true; 
     this.helpClick.setDisabled(true); 
     Window popupWindow = null; 
     popupWindow = (Window) Executions.createComponents("/zul/mainHelp.zul", 
       null, null); 
     this.popupWindow.setClosable(true); 

     popupWindow.addEventListener("onClose", new EventListener() { 

     void onEvent(Event event) throws Exception { 
     this.helpClick.setDisabled(false); 
     } 
     }); 


    } 

est le code que j'ajouté pour gérer la balise d'ancrage avec l'identifiant helpClick.
Cela fonctionne parfaitement bien lorsque j'utilise des clics de souris. Pour le premier clic, la fenêtre s'ouvre et simultanément le Label ne prend plus d'événements de clic.
Lorsque j'essaie de faire la même chose avec la souris (à l'aide du pavé tactile), deux clics sont déclenchés.
J'ai utilisé onClick() pour capturer l'événement. J'essaye de désactiver l'étiquette quand on clique dessus et que la fenêtre est ouverte. Ce n'est qu'après la fermeture de la fenêtre que j'active l'étiquette.
Cela fonctionne totalement bien lorsque j'utilise des clics de souris, mais pas quand j'utilise le robinet.
En tapant, l'étiquette prend plusieurs clics, ce qui n'est pas le cas avec le clic de souris.

Répondre

0

sans code voir, il est difficile de donner des conseils, mais peut-être que vous pouvez capturer l'événement ondoubleclick et l'ignorer ou le transmettre à la même auditeur que votre onClick événement.
... forward="onClick=onHelpClick,onDoubleClick=onHelpClick" ...

Après modification de la question:
Cela ressemble à un bug si vous pouvez double-cliquer sur un composant désactivé. Une chose que vous pouvez essayer est de définir votre lien à autodisable<p:a id="helpClick" onClick="help()" autodisable="self"> par A component documentation

+0

J'ai mis à jour la question en ajoutant le code utilisé. –

+0

J'ai essayé autoDisable au début. Mais il me donnait cette erreur: ** Méthode setAutodisable introuvable pour la classe org.zkoss.zul.A ** –

+0

@AvinashK quelle version de zk utilisez-vous? J'ai vérifié et ma version a A.setAutodisable (String). En outre, quel est le 'p:' pour, est-ce un autre espace de noms? –