どのイベントを使用して聞く必要がありますか?なぜvclickを使用するのですか?どの状況でどの状況を使用すればよいかわかりません。
3 に答える
jQuery Mobile Tapの場合、モバイルデバイスでのみ機能していました。これはもう当てはまりません。
VClickは、デスクトップ/モバイルデバイス間のクリック/タップの非互換性の間のギャップを埋めるために作成されました。
今ではタップを自由に使うことができますが、問題はほとんどありません。タップはiOSプラットフォームで失敗します。代わりにタッチスタートを使用する必要があります。
例:
VClick
デスクトップデバイスとモバイルデバイスの両方で動作します。
- Android4.1.1-遅延なし
- iOS-遅延なし
- デスクトップFirefox19およびChrome25.0.1364.152-遅延なし
http://jsfiddle.net/Gajotres/PYPXu/embedded/result/
$(document).on('pagebeforeshow', '#index', function(){
$( document ).on( "vclick", '[data-role="page"]', function() {
$( this ).append( "<span style='color:#00F;'>vmouseup fired.</span>" );
});
});
タップ:
タップ
以前はモバイルデバイスでのみ機能していましたが、現在はデスクトップブラウザでも機能しますが、jQueryMobileバージョン1.1以下のiOSでは失敗します。
- Android4.1.1-遅延なし
- iOS-遅延なし
- デスクトップFirefox19およびChrome25.0.1364.152-遅延なし
http://jsfiddle.net/Gajotres/k8kSA/
$(document).on('pagebeforeshow', '#index', function(){
$( document ).on( "tap", '[data-role="page"]', function() {
$( this ).append( "<span style='color:#00F;'>tap fired.</span>" );
});
});
クリック
モバイルデバイスとデスクトップブラウザで動作します。
- Android 4.1.1-目に見える遅延(300ミリ秒以上)
- iOS-遅延なし
- デスクトップFirefox19およびChrome25.0.1364.152-遅延なし
http://jsfiddle.net/Gajotres/L2FHp/
$(document).on('pagebeforeshow', '#index', function(){
$( document ).on( "click", '[data-role="page"]', function() {
$( this ).append( "<span style='color:#00F;'>click fired.</span>" );
});
});
結論
VClickとの後方jQM互換性スティックが必要な場合は、それ以外の場合はTapを使用します。
vclick(仮想化クリック)は、onclickイベントをシミュレートします。
http://api.jquerymobile.com/vclick/
タップイベントは、すばやく完全なタッチイベントの単一のターゲットオブジェクトの後にトリガーされます。
http://api.jquerymobile.com/tap/
それはあなたが何をしているかにもよるが、あなたがそうしない特別な理由がない限り(例えば、同じjsでデスクトップとモバイルをサポートする)、私はタップを使うだろう。
「tap」と「vclick」の大きな違いに気づきました。ボタンにタブで移動してEnterキーを押すと「vclick」が起動します-「tap」は起動しません。