我有一个带有HammerJS的网页。我也在使用hammerjs网站上的angular指令。
我在元素上滑动并平移。但是在这样做时,它阻止我单击iOS中的链接或表单元素。
奇怪的是,在链接上会发生CSS悬停效果,但不会触发href。 同样在表单元素上,我无法选择文本框以查看闪烁的光标和键盘。
是否有人遇到类似问题或能够协助导致此问题的设置?
以下代码识别滑动并触发该功能,但禁用链接触发。
<div data-hm-swipeup="doSwipeUp($event)" data-hm-swipedown="doSwipeDown($event)">
<a href="/contact-us">Contact</a>
</div>
答案 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对点击事件的识别,这应该允许锚点正常运行。