2016-02-05 1 views
0

En utilisant dojo.gesture.swipe Je voudrais pouvoir écouter tout état de cause swipe sur un panneau et changer son contenu en conséquence:Comment construire un panneau qui détecte à la fois swipe et cliquez sur Événements

on(myPanel, swipe.end, lang.hitch(this, function(e) { 
    if (e.dx < -100) {      
     //do something 
     e.stopPropagation(); 
     event.stop(e); 
    } 
})); 

Ce code fonctionne très bien pour détecter l'événement de balayage et faire quelque chose si le mouvement de balayage est assez grand.

Cependant sur mon panneau, je l'ai d'autres auditeurs sur les boutons cliquez qui ne fonctionne plus:

on(myButton, 'click', lang.hitch(this, 'onMyButtonClick'))`); 

Toute idée de ce qui pourrait mal tourner?

Thanxs

+0

utilisez-vous un périphérique tactile qui déclencherait un événement tactile au lieu d'un clic? – SeanKelleyx

+0

Les périphériques tactiles émettent généralement encore des clics (sinon la majorité du Web n'aurait pas fonctionné dessus le premier jour). Cependant, je pense que dojox.gesture pourrait empêcherDefault et/ou stopPropagation sur un grand nombre d'événements, et s'il le fait au démarrage, il pourrait empêcher le clic de se déclencher. Si vous parlez toujours de la saisie tactile, les gestes ne sont-ils pas aussi déclenchés? –

+0

Vous avez tous les deux raison. L'événement de tap est celui que j'avais besoin d'ajouter. – chOof

Répondre

0

je manquais l'auditeur sur l'événement 'du robinet':

on(myButton, tap, lang.hitch(this, onMyButtonClick)); 

Cela signifie que lors de l'utilisation dojo.gesture, on doit écouter click ET tap événement si le ciblage à la fois tactile et un écran classique.