首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >速度修复:如何消除jQuery移动应用程序中的300ms延迟

速度修复:如何消除jQuery移动应用程序中的300ms延迟
EN

Stack Overflow用户
提问于 2012-11-21 00:12:46
回答 3查看 19.5K关注 0票数 16

如何从iOS上的移动Safari中消除点击/点击延迟?

我已经摆弄了很多事件侦听器,并且使用了一堆不同的脚本(比如Lightning Touch)。有一些解决方案是可行的,但是这些类型的脚本迫使您为DOM上的每个链接编写一个目标元素。不幸的是,这可能会导致一些快速和一些缓慢的转换,这对我来说不起作用。

EN

回答 3

Stack Overflow用户

发布于 2013-05-31 00:28:32

这对我很有效。每当一个新页面被添加到dom中时,我们就可以将快速点击附加到所有链接上……

代码语言:javascript
复制
 // when new pages are loaded into the DOM via JQM AJAX Nav, apply ko bindings to that page's DOM
$(document).on('pageinit', '.ui-page', function (event, data)
{
    var activePage = $(event.target).get(0);
    FastClick.attach(activePage);
});
票数 0
EN

Stack Overflow用户

发布于 2013-10-24 22:49:44

Ben Howdle最近创建了一个开源项目Touche.js,它以一种相当简单和优雅的方式解决了这个问题。对于任何寻找这个问题解决方案的人来说,可能都值得一看。

票数 0
EN

Stack Overflow用户

发布于 2013-12-26 00:05:46

我不能直接对MikeZ推荐发表评论。

我成功地使用了它,但不得不做一些额外的tweek,特别是在android设备上。

除了在gonClick()中调用event.preventDefault();之外,我还必须调用event.stopImmediatePropagation();

否则,您可能会遇到麻烦,特别是当动态元素(如面板)在您单击的元素的顶部打开时。

与MikeZ解决方案一起使用的完整gonClick()方法:

代码语言:javascript
复制
function gonClick(event) {
    for ( var i = 0; i < coordinates.length; i += 2) {
        var x = coordinates[i];
        var y = coordinates[i + 1];
        if (Math.abs(event.clientX - x) < 25 && Math.abs(event.clientY - y) < 25) {
            event.stopPropagation();
            event.preventDefault();
            event.stopImmediatePropagation();
        }
    }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13477328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档