jquery 移动设备 - 在滑动事件中检测触摸数组
jquery mobile - detecting touches array on swipe event
我正在使用 jquery 移动设备,因为它可以在触摸屏上进行滑动检测。我想监听 swipe
事件,但只有在不止一根手指触摸屏幕时才做某事。我知道对于正常的触摸事件,这可以通过事件中的 touches
数组检测到,但是当我在 swipe
被触发后检查事件时,这似乎不存在。谁能指出我在 swipe
事件触发后如何访问 touches
数组的正确方向?
我发现我应该覆盖的不是 jquery 移动设备,而是我使用的幻灯片插件 (jquery cycle2)。这是我想出的代码:
window.global_touches = null;
$('.page').on({
touchstart: function(e) {
e.preventDefault();
window.global_touches = e.originalEvent.touches;
},
touchmove: function(e) {
window.global_touches = e.originalEvent.touches;
},
touchend: function(e) {
window.global_touches = e.originalEvent.touches;
},
touchcancel: function(e) {
window.global_touches = e.originalEvent.touches;
clearHighlight();
}
});
$('.inner-slideshow').on('cycle-bootstrap', function(e, optionHash, API) {
API.origAdvanceSlide = API.advanceSlide;
API.advanceSlide = function(numberOfPositions) {
if (window.global_touches && window.global_touches.length >= 2) {
API.origAdvanceSlide.call(API, numberOfPositions);
}
};
});
我正在使用 jquery 移动设备,因为它可以在触摸屏上进行滑动检测。我想监听 swipe
事件,但只有在不止一根手指触摸屏幕时才做某事。我知道对于正常的触摸事件,这可以通过事件中的 touches
数组检测到,但是当我在 swipe
被触发后检查事件时,这似乎不存在。谁能指出我在 swipe
事件触发后如何访问 touches
数组的正确方向?
我发现我应该覆盖的不是 jquery 移动设备,而是我使用的幻灯片插件 (jquery cycle2)。这是我想出的代码:
window.global_touches = null;
$('.page').on({
touchstart: function(e) {
e.preventDefault();
window.global_touches = e.originalEvent.touches;
},
touchmove: function(e) {
window.global_touches = e.originalEvent.touches;
},
touchend: function(e) {
window.global_touches = e.originalEvent.touches;
},
touchcancel: function(e) {
window.global_touches = e.originalEvent.touches;
clearHighlight();
}
});
$('.inner-slideshow').on('cycle-bootstrap', function(e, optionHash, API) {
API.origAdvanceSlide = API.advanceSlide;
API.advanceSlide = function(numberOfPositions) {
if (window.global_touches && window.global_touches.length >= 2) {
API.origAdvanceSlide.call(API, numberOfPositions);
}
};
});