我想阻止touchStart事件,以防止Safari在某些情况下在iOS设备上跳动。
为了做到这一点,我使用下面的代码:
$('.wrapper').on('touchstart', function(e) {
e.preventDefault();
});但是现在所有的点击事件都不起作用了:
$('.wrapper').on('click', function() {
$('.wrapper').text('Click fired');
});我不能将click事件替换为任何其他事件。因为这可能来自终端用户。
在iOS 10之前,弹跳的could be avoided by preventing only touchMove,但从iOS 10开始,它将会弹跳,除非touchStart也被阻止。
有没有办法只阻止touchStart事件,而允许使用click事件?
发布于 2016-10-18 04:14:08
我没有可用的iOS 10进行试驾,这只是一个胡乱猜测,但请查看以下代码片段:
$('.wrapper').on('click touchstart', function(e) {
if (e.type != 'click') {
e.preventDefault();
} else {
$('.wrapper').text('Click fired');
}
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">asd</div>
https://stackoverflow.com/questions/40094570
复制相似问题