在不阻止滚动的情况下阻止touchstart上的默认设置

时间:2014-01-04 00:34:14

标签: javascript jquery preventdefault touchstart

这个问题有类似的问题,但解决方案要么涉及另一个库,要么使用点击事件 - 我想知道没有库是否可行。

我在图像上使用touchstart事件来检测1.5s的点击,然后重新加载所述图像。但是,在大多数移动设备上按住图像一段时间后,会显示一个弹出窗口,询问您是否要保存/复制图像,我想阻止它。

preventDefault()可以解决问题,但也会忽略图像上的滚动(正如预期的那样)。

什么是允许在图像上滚动的最佳方式?

示例代码:

$('#the-image').bind('touchstart', function(event) {
    event.preventDefault();
    //detects long tap, then reloads etc
});

iOS有一个CSS属性(-webkit-touch-callout:none)可以正常工作,但不适用于非iOS设备。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您可以使用 CSS。

,请尝试-webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;

一个很好的技巧是node.ontouchstart = node.onclick;所以它认为你正在使用电脑鼠标。

请参阅Disabling the context menu on long taps on Android