如果是'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/

10-11 05:31