我正在开发一个对taphold事件没有用的应用程序,长按,我想完全删除它们。
实际问题是jQuery Mobile UI引入的延迟,允许它区分tap和taphold事件,这会导致点击显着延迟,使app感到迟钝。许多应用程序不需要长按,因此延迟通常是无用的。
请注意,将ontouch事件视为点击只会使其无法滚动。
如果有必要,我很乐意修补图书馆,所以欢迎这些答案。
如何消除延迟?
答案 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初始化之前初始化。看看我的例子,一切都会很清楚。