我正在开发一个对点击事件、长按没有用的应用程序,我想完全删除它们。
实际的问题是 jQuery Mobile UI 引入了延迟以允许它区分点击和点击事件,这导致点击明显延迟,使应用程序感觉滞后。许多应用程序不需要长按,因此延迟通常是无用的。
请注意,将 ontouch 事件视为点击只会使其无法滚动。
如有必要,我很乐意为库打补丁,因此欢迎您回答这些问题。
你如何消除延迟?
我正在开发一个对点击事件、长按没有用的应用程序,我想完全删除它们。
实际的问题是 jQuery Mobile UI 引入了延迟以允许它区分点击和点击事件,这导致点击明显延迟,使应用程序感觉滞后。许多应用程序不需要长按,因此延迟通常是无用的。
请注意,将 ontouch 事件视为点击只会使其无法滚动。
如有必要,我很乐意为库打补丁,因此欢迎您回答这些问题。
你如何消除延迟?
如果您只需要移除,那么它可以轻松实现。一种方法是一起删除此功能,但可以通过 jQuery Mobile 全局配置来完成。
此外,我可以看到这是一个老问题,jQuery Mobile 已移至 1.3.1 版,因此我的答案是在上一个版本中创建的,但据我所知,它也适用于旧版本。
您所要做的就是更改 glabal 参数:
$.event.special.tap.tapholdThreshold
它用于告诉(以 ms 为单位)将 tap 计算为 taphold 需要多长时间。
如果此参数设置为某个巨大的数字,我们可以摆脱 taphold。
我给你做了一个工作示例:http: //jsfiddle.net/Gajotres/U4prb/
$(document).bind("mobileinit", function(){
$.event.special.tap.tapholdThreshold = 10000000000;
});
还要注意 mobileinit 必须在 jQuery Mobile 初始化之前进行初始化。只要看看我的例子,一切都会很清楚。