【问题标题】:How to avoid "double touch" on an iPad using jQuery?如何使用 jQuery 在 iPad 上避免“双重触摸”?
【发布时间】:2015-03-24 20:16:28
【问题描述】:
我有一个按钮,按下该按钮会将您带到页面顶部并突出显示搜索输入。它工作正常,除了 iPad 用户必须单击两次才能强制它工作。
这与识别触摸事件无关,而是确保在第一次尝试时触发触摸事件。
如何避免 iPad 上的“双击”?
$('.my-button').click(function() {
$("html, body").animate({ scrollTop: 0 }, 500);
$('.search').addClass('highlighted');
});
【问题讨论】:
标签:
javascript
jquery
ios
ipad
【解决方案1】:
$('.my-button').bind("click",function() {
$(this).unbind();
$("html, body").animate({ scrollTop: 0 }, 500);
$('.search').addClass('highlighted');
$(this).bind();
});
jquery bind 确实将处理程序附加到特定元素的事件,因此,无论何时绑定单击事件,它都不适用于双击,因为您可以单独绑定双击事件。因此,当您在第一次单击后在这种情况下单击双击时,它将取消绑定单击事件,以便在执行功能期间单击事件不会重复,并在您完成所有功能后再次绑定它。取消绑定删除先前附加的事件处理程序从元素。更多请查看bind 和unbind
【解决方案2】:
你尝试过 'tap' jQuery 事件吗?
$('.my-button').on('tap', function() {
$("html, body").animate({ scrollTop: 0 }, 500);
$('.search').addClass('highlighted');
});