1

タップホールドイベントや長押しを使用しないアプリを開発しているので、それらを完全に削除したいと思います。

実際の問題は、jQuery Mobile UIがタップイベントとタップホールドイベントを区別できるようにするために導入する遅延です。これにより、タップが著しく遅延し、アプリが遅く感じられます。多くのアプリでは長押しは必要ないため、遅延は役に立たないことがよくあります。

オンタッチイベントをタップとして扱うと、スクロールできなくなることに注意してください。

必要に応じてライブラリにパッチを適用できるので、それらに沿った回答を歓迎します。

どのように遅延を取り除きますか?

4

1 に答える 1

3

取り外しだけが必要な場合は、簡単に取り外すことができます。1つの方法は、この機能をすべて一緒に削除することですが、jQueryMobileのグローバル構成を介して実行できます。

また、これは古い質問であり、jQuery Mobileはバージョン1.3.1に移行したため、私の回答は前回のバージョンで機能するように作成されていますが、私の知る限り、古いバージョンでも機能します。

あなたがしなければならないのは、glabalパラメータを変更することだけです:

$.event.special.tap.tapholdThreshold

これは、タップがタップホールドとして計算されるのに必要な時間を(ミリ秒単位で)伝えるために使用されます。

このパラメータが非常に大きな数に設定されている場合は、タップホールドを取り除くことができます。

私はあなたに実用的な例を作りました:http://jsfiddle.net/Gajotres/U4prb/

$(document).bind("mobileinit", function(){
    $.event.special.tap.tapholdThreshold = 10000000000;
});

また、mobileinitはjQueryMobileの初期化の前に初期化する必要があることに注意してください。私の例を見てください。すべてが明確になります。

于 2013-05-23T10:44:20.787 に答える