为什么此Longpress touch甚至听众被两次调用?

问题描述

我的fabric.js画布具有以下事件侦听器。

canvas.on('touch:longpress',function(e) {
    // Some Code
});

长按此键后将调用此侦听器,并且还要求进行“润饰”事件。为什么会发生这种情况,又如何绕过呢?

解决方法

  var isTouching = false;
  canvas.on('mouse:down',function (e) {
    console.log('touchstart');
    isTouching = true;
  });
  canvas.on('touch:longpress',function (e) {
    if (isTouching) {
      // Some Code
      console.log('longpress');
    }
  });
  canvas.on('mouse:up',function (e) {
    console.log('touchend');
    isTouching = false;
  });

您可以使用布尔变量来解决这种情况。