私はこれについて開発者に連絡を取り、現在書かれているコードはあまりハックに適していないため、このメソッドをサポートするためにコードを自分で変更することを示しました...私は100%成功せずに変更を試みました.
現在、JCrop は jquery を使用して .mousedown を追跡して選択を開始し、.mouseup を使用して選択を受け入れ/停止しています。jcropを使用してトラックパッドをクリックすると、ブラックベリーデバイス(トラックパッド付き)で何が起こるか、カーソルを移動すると選択範囲の描画が開始されます(トラックパッドをクリック(押したまま)してドラッグすることはできません)。問題は、もう一度クリックすると選択が削除され、現在のカーソル位置から再描画が開始されることです。JCrop はマウスダウンを使用してクリック アンド ドラッグ選択プロセスを追跡し、次にマウスアップを使用して選択を解放し、クロップ ボックスを保持しているように思えます。
clickCount のような変数を割り当ててクリックを追跡し、イベントを発生させる関数を割り当てることを考えました。したがって、ユーザーがクリックするたびに、関数を実行して clickCount を追跡し、開始選択イベントまたは終了選択イベントを発生させます。
以下は、.mousedown と .mouseup へのすべての参照です。
var $trk = newTracker().width(boundx + (bound * 2)).height(boundy + (bound * 2)).css({
position: 'absolute',
top: px(-bound),
left: px(-bound),
zIndex: 290
}).mousedown(newSelection);
function dragDiv(ord, zi) //{{{
{
var jq = $('<div />').mousedown(createDragger(ord)).css({
cursor: ord + '-resize',
position: 'absolute',
zIndex: zi
});
if (Touch.support) {
jq.bind('touchstart', Touch.createDragger(ord));
}
$hdl_holder.append(jq);
return jq;
}
var $track = newTracker().mousedown(createDragger('move')).css({
cursor: 'move',
position: 'absolute',
zIndex: 360
});
function toFront() //{{{
{
$trk.css({
zIndex: 450
});
if (trackDoc) {
$(document)
.bind('mousemove',trackMove)
.bind('mouseup',trackUp);
}
}
//}}}
function toBack() //{{{
{
$trk.css({
zIndex: 290
});
if (trackDoc) {
$(document)
.unbind('mousemove', trackMove)
.unbind('mouseup', trackUp);
}
}
if (!trackDoc) {
$trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp);
}
ヘルプ/アイデアをいただければ幸いです。ありがとう