2016-09-07 2 views
0

J'ai deux événementsDefer, debounce ou délai d'attente d'un événement

cy.on('mousedown touchstart', 'node', function (event) { 
    // start 
}); 

cy.on('mouseover tapdragover', 'node', function (event) { 
    // end 
}); 

Le problème est que le deuxième événement est presque immédiatement tiré depuis le premier événement a été déclenché lorsque la souris est pressé sur un noeud et le second est déclenché lorsque la souris est sur un nœud. Est-il possible de debounce ou defer l'action? Je sais que la syntaxe est cytoscape.js -spécifique, mais je suppose que les possibilités régulières d'utiliser debounce et defer s'appliquent.

Je suppose qu'une solution facile serait d'enregistrer un horodatage dans le premier événement et de vérifier si endTime - startTime > threshold dans le deuxième événement.

Répondre

0

Oui, il suffit d'utiliser Lodash: cy.on('evt1 evt2 ...', _.debounce(handler))