如果是'vmousedown'或'vmouseup'事件,则具有一些功能。
问题是,当我使用win8手机进行“ vmousedown”操作时,同时按下屏幕并稍微移动手指然后松开,不会触发“ vmouseup”事件。然后我的tapTimer不会被重置。
还没有在其他手机上进行过测试,但是我不知道是阻止它运行的操作系统还是jQuery Mobile。如果它是jQM,则其探针可修复。
我在jquery mobile event page上尝试了所有可能的事件。
但是他们并不是对我的手指动作有反应的任何人。我的最后一个想法是处理X和Y位置。
但是感觉就像检查计时器是否在打开页面时是否打开(即使这并非出于此目的)。
$('#element').on('vmousedown vmouseup', function(e) {
if (e.type === 'vmousedown') {
tapTimer = setTimeout(function () {
isTapHold = true;
$this.find('.ui-block-b').find('li').addClass('gggg');
}, 1500);
} else {
clearTimeout(tapTimer);
if (!isTapHold) {
//
} else {
$.mobile.silentScroll(0);
}
}
});
最佳答案
在“ vmousedown”之后移动手指会触发“ vmousemove”事件。如果要触发“ vmouseup”,则应使用preventDefault()方法阻止vmousemove事件的默认操作。
你可以加:
$('#element').on('vmousemove', function(e) {
e.preventDefault();
});
关于javascript - 当我用手机进行小的“滑动/移动”时,jQuery Mobile停止在“vmouseup”上监听,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19428786/