【发布时间】:2012-08-27 15:26:42
【问题描述】:
从点击链接/按钮到事件触发时,我已经读过 mobile Safari has a 300ms delay on click events。延迟的原因是等待查看用户是否打算双击,但从用户体验的角度来看,等待 300 毫秒通常是不可取的。
One solution 要消除这 300 毫秒的延迟,是使用 jQuery Mobile 的“tap”处理。不幸的是,我不熟悉这个框架,如果我只需要一两行代码以正确的方式应用touchend,我不想加载一些大框架。
像许多网站一样,我的网站有很多这样的点击事件:
$("button.submitBtn").on('click', function (e) {
$.ajaxSubmit({... //ajax form submisssion
});
$("a.ajax").on('click', function (e) {
$.ajax({... //ajax page loading
});
$("button.modal").on('click', function (e) {
//show/hide modal dialog
});
而我想做的是使用这样的单个代码 sn-p 来消除 ALL 那些点击事件的 300 毫秒延迟:
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
这是一个坏/好主意吗?
【问题讨论】:
-
@Pointy 谢谢,这可能行得通...
-
"...从用户体验的角度来看,这显然不是很好。"我会对这个假设保持警惕。
-
@OliverMoran,感谢您的更正,我刚刚编辑了那句话,请参阅上面的问题..
-
可能是一个解决方案:stackoverflow.com/a/12969739/1491212
标签: javascript jquery jquery-mobile safari touch