如何防止使用hammer.js触摸默认值

时间:2013-03-14 09:21:14

标签: javascript jquery mobile javascript-events hammer.js

如果用触摸设备点击锚点,我想阻止锚点点击,但如果用鼠标点击则表示正常操作。

原因是,在桌面上,您将鼠标悬停在锚点上以查看更多信息,然后单击以查看产品。

在手机上,我希望第一个点击显示信息,第二个点击查看产品。

我已经尝试过以下各种变体:

$('article.product aside a.link').hammer().on('tap', function(ev) {

    if (ev.gesture.pointerType == 'touch') {
        ev.gesture.srcEvent.preventDefault();

        return false;
    }

});

有没有人对此有任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

jQuery mouseover适用于移动设备(至少在iOS中)。我创建了一个使用mouseover的小提琴,并告诉链接不要在opacity为1的情况下触发。

http://jsfiddle.net/FyF3b/5/

我在Chrome和iPhone 4S上进行了测试,它似乎按照您的要求进行了测试。如果它适用于您的关系,请告诉我。

JS:

$('aside').on('mouseover mouseout', function() {
  $(this).toggleClass('on'); 
});
$('aside a').on('click', function(event) {
  if ($(this).parent().css('opacity') < 1) {
    event.preventDefault();
  }
});