Jquery mobile 为什么touchstart事件会抑制点击事件?
我有以下代码:Jquery mobile 为什么touchstart事件会抑制点击事件?,jquery-mobile,mobile,touchstart,Jquery Mobile,Mobile,Touchstart,我有以下代码: $('.selector').on({ touchstart: function (e) { e.preventDefault(); alert(3); e.stopPropagation(); }, tap: function (e) { e.preventDefault(); alert(4); e.stopP
$('.selector').on({
touchstart: function (e) {
e.preventDefault();
alert(3);
e.stopPropagation();
},
tap: function (e) {
e.preventDefault();
alert(4);
e.stopPropagation();
}
});
仅触发touchstart。有人能解释为什么吗
备注:这就是我为jQuery mobile编写脚本的方式:
编辑:
我想在我的一个div上引入一个悬停功能,我认为使用tap事件就像单击一样,使用类似于touchstart的悬停
$('.selector').on('tap swipe', function (e) {
e.preventDefault();
if(e.type == 'swipe') {
alert(1);
}
if(e.type == 'tap') {
alert(2);
}
e.stopPropagation();
});
$('.selector .sel1').on('tap swipe', function (e) {
e.preventDefault();
if(e.type == 'swipe') {
alert(3);
}
if(e.type == 'tap') {
alert(4);
}
e.stopPropagation();
});
使用这段代码,我的div上的滑动事件可以正常工作,但是对于inside元素,我无法重现滑动事件,只有点击被触发。我真的不明白为什么。使用如下语法:
$('.selector').on("touchstart tap", function(e){
e.preventDefault();
if(e.type == "touchstart"){
alert(3);
}
if(e.type == "tap"){
alert(4);
}
e.stopPropagation();
});
Touchstart似乎不再作为jQuery Mobile版本中的本机事件提供。1.4.5您是否可以使用“轻按”和“轻扫”(或“轻扫”/“轻扫”)来实现您的目标?它并不完全清楚你在创造什么 注意:您可以做的一件事是轻松定制本地jQuery移动函数以进行滑动。详情请参阅 在进行.on(“swipe”…)绑定之前,可以更改jQuery swipe使用的测试值。这很容易
$.event.special.swipe.horizontalDistanceThreshold = 100; // in lieu of 30px
您可以通过警报或console.log()验证数据设置是否正确。也许这对你有用?六羟甲基三聚氰胺六甲醚。。通过使用垂直距离阈值,您可以在本质上暂时将“滑动”定义为“向上滑动”,然后您可以使用swipeleft、swiperight和swipeup 即使我点击我的div,触发的第一个事件是touchstart,因此只会显示警报3。我想分离touchstart和tap的行为。