phonegap を使用して開発された Android アプリケーションで、jquery-ui を使用してドラッグ アンド ドロップ機能を実装しています。すべてが正常に機能しています。jquery.ui.touch-punch.js
タッチイベントに使用しました。問題は、Android タブレットでタッチしてドラッグしているときにヘルパーを取得できないことです。ヘルパーはデスクトップ ブラウザーで正常に動作します。
質問する
1471 次
2 に答える
4
これが実際の例です:http://jsfiddle.net/Gajotres/rjC9q/
Android4.1.1とiPad6.0でテストしました。
それを機能させるには、次のコードも追加する必要があります。
/iPad|iPhone|Android/.test( navigator.userAgent ) && (function( $ ) {
var proto = $.ui.mouse.prototype,
_mouseInit = proto._mouseInit;
$.extend( proto, {
_mouseInit: function() {
this.element
.bind( "touchstart." + this.widgetName, $.proxy( this, "_touchStart" ) );
_mouseInit.apply( this, arguments );
},
_touchStart: function( event ) {
/* if ( event.originalEvent.targetTouches.length != 1 ) {
return false;
} */
this.element
.bind( "touchmove." + this.widgetName, $.proxy( this, "_touchMove" ) )
.bind( "touchend." + this.widgetName, $.proxy( this, "_touchEnd" ) );
this._modifyEvent( event );
$( document ).trigger($.Event("mouseup")); //reset mouseHandled flag in ui.mouse
this._mouseDown( event );
//return false;
},
_touchMove: function( event ) {
this._modifyEvent( event );
this._mouseMove( event );
},
_touchEnd: function( event ) {
this.element
.unbind( "touchmove." + this.widgetName )
.unbind( "touchend." + this.widgetName );
this._mouseUp( event );
},
_modifyEvent: function( event ) {
event.which = 1;
var target = event.originalEvent.targetTouches[0];
event.pageX = target.clientX;
event.pageY = target.clientY;
}
});
})( jQuery );
私はこのコードの作者ではありません。OlegSlobodskoiです。
于 2013-03-06T13:21:09.837 に答える
0
jquery-ui
jquery-mobileで?? とんでもない!jquery-ui
モバイル デバイス用に最適化されていません。したがって、スムーズに実行されるとは思わないでください。
次のような他のライブラリを検討する必要がある場合があります。
于 2013-03-06T11:55:30.403 に答える