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

Cai*_*ifa 6 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;
});
Run Code Online (Sandbox Code Playgroud)

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

安慰

还有一个问题,我无法_blanka标签上重现目标.

这是更好的方法吗?我是正确的吗?我该如何解决?

Waq*_*gir 0

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

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 );
});
Run Code Online (Sandbox Code Playgroud)