jquery - 双击并单击冲突(jQuery 和 Hammer.js)

标签 jquery hammer.js

我正在尝试一些疯狂的事情,我想实现一个 Instagram 功能:点按两次即可点赞。

所以,我正在使用最新版本的 jQuery 和 Hammer.js。我不是高级专业人士,但我尝试编写 JavaScript 代码来识别哪个事件。

var postDoubleTapped;
postDoubleTapped = false;

Hammer($('.post').get(0)).on('doubletap', function(event) {
  event.preventDefault();
  postDoubleTapped = true;

  console.log('Double tap!');
  return false;
});

$(document).on('click', '.post a', function(event) {
  event.preventDefault();
  console.log(postDoubleTapped);

  setTimeout((function(_this) {
    return function() {
      if (!postDoubleTapped) {
        location.href = $(_this).attr('href');
      }
      postDoubleTapped = false;
    };
  })(this), 500);
  return false;
});

正如您在示例( http://codepen.io/caio/pen/vqEjc )中看到的那样,它不起作用。控制台返回:

Console

还有另一个问题,我无法在 a 标记上重现 _blank 目标。

这是更好的方法吗?我走的路正确吗?我该如何修复它?

最佳答案

您的方法是正确的,但双击就像单击两次一样。所以你在这两种情况下都使用锤子,如下所示:

var i=0;
Hammer($('.post').get(0)).on('doubletap', function(event) {
    i++;
    console.log( 'double tap' + i );
});

$(".post a").hammer();
$(".post a").on('tap', function (event) {
    i++;
    console.log( 'single tap' + i );
});

关于jquery - 双击并单击冲突(jQuery 和 Hammer.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23332811/

相关文章:

javascript - Angular - 'Could not find HammerJS'

javascript - 将输入框转换为组合框以实现 jQuery 自动完成

JQuery/JSON 先决条件

鼠标点击时jQuery动画div

javascript - .slice(0) 这里有什么意义?

javascript - 动态添加元素上的 Hammer.js 事件

php - 从 Woocommerce 3.4+ 的结帐字段中删除 "(optional)"文本

javascript - HammerJS 动态添加元素

javascript - 使用 Hammer.js 拖动事件将 HTML5 元素拖放到 div 上

javascript - 如何保持浏览器捏合缩放并使用 hammer.js 捏合事件?