Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修改jcrop以支持blackberry轨迹板?_Javascript_Blackberry_Crop_Jcrop_Trackpad - Fatal编程技术网

Javascript 如何修改jcrop以支持blackberry轨迹板?

Javascript 如何修改jcrop以支持blackberry轨迹板?,javascript,blackberry,crop,jcrop,trackpad,Javascript,Blackberry,Crop,Jcrop,Trackpad,我已经联系了开发人员,他表示我将自己修改代码以支持此方法,因为目前编写的代码不太适合黑客……我试图修改,但没有100%成功 目前,JCrop正在使用jquery跟踪.mousedown来启动选择,.mouseup来接受/停止选择。当您使用jcrop单击轨迹板时,blackberry设备(带轨迹板)上会发生什么?当您移动光标时,它会开始绘制选择(您不能单击(按住)并在轨迹板上拖动,这更像是一个单击事件)。问题是,当您再次单击时,它将删除选择并开始从当前光标位置重新绘制它。在我看来,JCrop使用m

我已经联系了开发人员,他表示我将自己修改代码以支持此方法,因为目前编写的代码不太适合黑客……我试图修改,但没有100%成功

目前,JCrop正在使用jquery跟踪.mousedown来启动选择,.mouseup来接受/停止选择。当您使用jcrop单击轨迹板时,blackberry设备(带轨迹板)上会发生什么?当您移动光标时,它会开始绘制选择(您不能单击(按住)并在轨迹板上拖动,这更像是一个单击事件)。问题是,当您再次单击时,它将删除选择并开始从当前光标位置重新绘制它。在我看来,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);
      }
var$trk=newTracker().width(boundx+(bound*2)).height(boundy+(bound*2)).css({
位置:'绝对',
顶部:px(-bound),
左:px(-bound),
zIndex:290
})mousedown先生(新闻选举);
功能dragDiv(ord,zi)//{{{
{
var jq=$('').mousedown(createDragger(ord)).css({
光标:ord+“-调整大小”,
位置:'绝对',
zIndex:zi
});
如果(触摸支持){
jq.bind('touchstart',Touch.createDragger(ord));
}
$hdl_holder.append(jq);
返回jq;
}
var$track=newTracker().mousedown(createDragger('move')).css({
光标:“移动”,
位置:'绝对',
zIndex:360
});
函数toFront()//{{{
{
$trk.css({
zIndex:450
});
if(trackDoc){
$(文件)
.bind('mousemove',trackMove)
.bind('mouseup',trackUp);
}
} 
//}}}
函数toBack()//{{{
{
$trk.css({
zIndex:290
});
if(trackDoc){
$(文件)
.unbind('mousemove',trackMove)
.unbind('mouseup',trackUp);
}
} 
如果(!trackDoc){
$trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp);
}

非常感谢您的帮助/想法。谢谢您,下面我们来介绍一下:

var isDragging = false;

function onMouseDown(event) {
    isDragging = !isDragging;
}

function onMouseUp(event) {
    if (isDragging) {
        event.preventDefault();
    }
}

window.addEventListener('mousedown', onMouseDown, false);
window.addEventListener('mouseup', onMouseUp, false);
这样,onMouseUp在技术上只能每隔一段时间触发一次,这可能会阻止释放触发器停止选择。当然,这需要与您的代码进行更深入的集成