web-dev-qa-db-ja.com

クリックイベントとタップイベントの違いは何ですか?

Android/iOSおよびデスクトップコンピューターで実行するアプリを開発しています。

clickまたはtapイベントを使用する必要がありますか?

それらの違いは何ですか?

「タップ」はデスクトップで動作しますか?そうでない場合(そしてclickを使用する必要があります)、tapclickより優れている利点がありませんか?

37
Tiger

タッチイベントとマウスイベントはまったく別の獣です。それらは互換性がありません。

つまり、私は jQuery Touch Punch を使用しています。これは、タッチイベントをマウスイベントの類似物にマッピングするため、タップはクリックと同じもの。これにより、特別なタッチイベントプログラミングを行わずに、すべての標準jQuery UIの長所を使用できます。使い方は非常に簡単で、これまでのところiDeviceとAndroidの両方で完璧に機能しました。

14
ghoti

.on()を使用して、関数を複数のイベントにバインドできます。

$('#element').on('click tap', function() {
    ...
});

this を指定してくれた@ bergie3000に感謝

26
tuned

古い投稿を掲載して申し訳ありませんが、Phonegapを使用してjQueryに取り組んでいる人には:

「div」、「p」など、クリックされるはずのない要素に割り当てられた場合、「タップ」によって任意の要素が完全に機能する場合、「クリック」イベントはトリガーされません。それは気づくのに年齢を要した。

結論として、jQuery mobileで何かを開発する場合は、「クリック」ではなく「タップ」を使用することをお勧めします。

8
Rokoco

イベントのjQMドキュメントを調べます。現在のドキュメントは次のとおりです。

モバイルデバイスの場合、タッチイベントを使用します。マウスイベントが必要な場合、jQMはこのための仮想マウスイベントも提供します。

仮想マウスイベント
マウスイベントとタッチイベントを抽象化しようとする一連の「仮想」マウスイベントを提供します。これにより、開発者はmousedown、mousemove、mouseup、clickなどの基本的なマウスイベントのリスナーを登録できます。プラグインは、そのデバイスで可能な限り高速にリスナーを呼び出すために、舞台裏で正しいリスナーを登録します。 。タッチ環境では、プラグインは従来のマウス環境で見られるイベント発生の順序を保持します。たとえば、vmouseupは常にvmousedownの前、vmousedownはvclickなどの前にディスパッチされます。仮想マウスイベントは、座標情報の抽出方法も正規化しますイベント。したがって、タッチベースの環境では、座標はpageX、pageY、screenX、screenY、clientX、およびclientYプロパティから、イベントオブジェクトで直接利用できます。

「クリック」イベントがまだ機能しているとは言えません。たとえば、ボタンをクリックできます。ただし、モバイルデバイスとデスクトップでは異なるイベントが発生します

2
Phill Pafford