我了解到,从单击链接/按钮到事件触发之间,移动Safari的点击事件会延迟300毫秒。延迟的原因是等待用户是否打算双击,但是从UX的角度来看,等待300ms通常是不希望的。
消除这种300毫秒延迟的一种解决方案是使用jQuery Mobile“点击”处理。不幸的是,如果我只需要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
});
而我想做的就是使用一个简单的代码片段消除所有这些单击事件的300ms延迟:
$("a, button").on('tap', function (e) {
$(this).trigger('click');
e.preventDefault();
});
这是一个好主意吗?