HammerJS(v2)滑动和平移禁用在iOS中触发的链接

时间:2014-12-12 14:10:01

标签: javascript ios angularjs hammer.js

我有一个带有HammerJS的网页。我也在使用hammerjs网站上的angular指令。

我在元素上滑动并平移。但是在这样做时,它阻止我单击iOS中的链接或表单元素。

奇怪的是,在链接上会发生CSS悬停效果,但不会触发href。 同样在表单元素上,我无法选择文本框以查看闪烁的光标和键盘。

是否有人遇到类似问题或能够协助导致此问题的设置?

以下代码识别滑动并触发该功能,但禁用链接触发。

<div data-hm-swipeup="doSwipeUp($event)" data-hm-swipedown="doSwipeDown($event)">
    <a href="/contact-us">Contact</a>
</div>

1 个答案:

答案 0 :(得分:1)

在锤子设置中,您需要:

prevent_default: false

...这将允许您通过容器传递点击次数。

<强>更新

新版本看起来有点不同。

尝试一些事情......

参考:http://hammerjs.github.io/api/#hammer.defaults domEvents: false也许设置为true ...

让Hammer也解雇DOM事件。这有点慢,所以默认情况下禁用。如果您想玩事件委派,建议设置为 true

preset: [....]也许删除点按...

调用Hammer()时默认识别器设置。创建新管理器时,将跳过这些。

默认情况下,它会添加一组轻击,双击,按下,水平平移和滑动,以及多点触控捏合和旋转识别器。默认情况下禁用捏合和旋转识别器,因为它们会阻止元素。

更新2

看起来这可能是处理这些DOM事件的一种方法......

$(element).hammer({domEvents:true}).on("tap", '.tap-object', function(event) {

...并有效地替换锚的原生处理。

或者,您可以删除Hammer对点击事件的识别,这应该允许锚点正常运行。