jQuery Mobile:让taphold表现得像tap

时间:2012-10-28 04:42:52

标签: javascript android jquery-mobile

我正在开发一个对taphold事件没有用的应用程序,长按,我想完全删除它们。

实际问题是jQuery Mobile UI引入的延迟,允许它区分tap和taphold事件,这会导致点击显着延迟,使app感到迟钝。许多应用程序不需要长按,因此延迟通常是无用的。

请注意,将ontouch事件视为点击只会使其无法滚动。

如果有必要,我很乐意修补图书馆,所以欢迎这些答案。

如何消除延迟?

1 个答案:

答案 0 :(得分:3)

如果只需要移除,就可以轻松实现。一种方法是一起删除此功能,但可以通过jQuery Mobile全局配置来完成。

此外,我可以看到这是一个老问题,jQuery Mobile已经转移到1.3.1版本,所以我的答案是在最后一个版本中创建的,但据我所知,它也适用于旧版本。

你所要做的就是改变冰雹参数:

$.event.special.tap.tapholdThreshold

它用于告诉(以毫秒为单位)将tap作为taphold计算所需的时间。

如果此参数设置为某个巨大的数字,我们可以摆脱taphold。

我为你做了一个工作的例子:http://jsfiddle.net/Gajotres/U4prb/

$(document).bind("mobileinit", function(){
    $.event.special.tap.tapholdThreshold = 10000000000;
});

还要警告mobileinit必须在jQuery Mobile初始化之前初始化。看看我的例子,一切都会很清楚。