1

「vmousedown」または「vmouseup」イベントの場合、いくつかの機能があります。問題は、win8 モバイルで「vmousedown」し、画面を押しながら指を少し動かして離すと、「vmouseup」イベントが発生しないことです。そして、私のtapTimerはリセットされません。他の携帯電話ではまだテストしていませんが、それを防ぐのが OS なのか、それとも 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);
            }
        }
    });
4

1 に答える 1

0

「vmousedown」の後に指を動かすと、「vmousemove」イベントが発生します。「vmouseup」を起動したい場合は、preventDefault() メソッドを使用して、vmousemove イベントのデフォルト アクションを防止する必要があります。

あなたは付け加えられます:

$('#element').on('vmousemove', function(e) {
    e.preventDefault();
});
于 2014-03-27T16:38:28.983 に答える