延迟,去抖或超时事件

时间:2016-09-07 18:35:51

标签: javascript timeout deferred cytoscape.js cytoscape

我有两个事件

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

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

问题是第二个事件几乎立即被触发,因为在节点上按下鼠标时触发了第一个事件,而当鼠标在节点上时触发了第二个事件。

可以debouncedefer采取行动吗?我知道语法是cytoscape.js - 具体,但我想使用debouncedefer的常规可能性适用。

我想一个简单的解决方案是在第一个事件中保存时间戳并检查第二个事件中是否endTime - startTime > threshold

1 个答案:

答案 0 :(得分:0)

是的,只需使用Lodash:cy.on('evt1 evt2 ...', _.debounce( handler ))