我已经联系了开发人员,他表示我将自己修改代码以支持这种方法,因为当前编写的代码对黑客攻击不是很友好......我试图修改但没有 100% 成功.
目前,JCrop 正在使用 jquery 来跟踪 .mousedown 以开始选择,并使用 .mouseup 来接受/停止选择。当您使用 jcrop 单击触控板时,黑莓设备(带触控板)上会发生什么,它会在您移动光标时开始绘制选择(您不能单击(按住)并在触控板上拖动它更多的是单击事件)。问题是当您再次单击时,它会删除选择并开始从当前光标位置重新绘制它。在我看来,JCrop 正在使用 mousedown 来跟踪单击和拖动选择过程,然后使用 mouseup 来释放选择并保留裁剪框。
我考虑分配一个变量,如 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);
}
帮助/想法将不胜感激。谢谢