如何从iOS上的移动Safari中消除点击/点击延迟?
我已经摆弄了很多事件侦听器,并且使用了一堆不同的脚本(比如Lightning Touch)。有一些解决方案是可行的,但是这些类型的脚本迫使您为DOM上的每个链接编写一个目标元素。不幸的是,这可能会导致一些快速和一些缓慢的转换,这对我来说不起作用。
发布于 2013-05-31 00:28:32
这对我很有效。每当一个新页面被添加到dom中时,我们就可以将快速点击附加到所有链接上……
// 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);
});
发布于 2013-10-24 22:49:44
Ben Howdle最近创建了一个开源项目Touche.js,它以一种相当简单和优雅的方式解决了这个问题。对于任何寻找这个问题解决方案的人来说,可能都值得一看。
发布于 2013-12-26 00:05:46
我不能直接对MikeZ推荐发表评论。
我成功地使用了它,但不得不做一些额外的tweek,特别是在android设备上。
除了在gonClick()中调用event.preventDefault();
之外,我还必须调用event.stopImmediatePropagation();
否则,您可能会遇到麻烦,特别是当动态元素(如面板)在您单击的元素的顶部打开时。
与MikeZ解决方案一起使用的完整gonClick()方法:
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();
}
}
};
https://stackoverflow.com/questions/13477328
复制相似问题