如果它是“vmousedown”或“vmouseup”事件,则具有一些功能。问题是,当我使用 win8 手机“vmousedown”并按下屏幕时,稍微移动手指并松开,它不会触发“vmouseup”事件。然后我的 tapTimer 没有被重置。还没有用其他手机测试过,但我不知道是操作系统阻止了它还是 jQuery Mobile。如果它是 jQM,那么它是可以修复的。我在jquery 移动事件页面上尝试了所有可能的事件。但他们不是对我的手指动作有反应的人。我的最后一个想法是用 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);
}
}
});