Javascript 如何修改jcrop以支持blackberry轨迹板?
我已经联系了开发人员,他表示我将自己修改代码以支持此方法,因为目前编写的代码不太适合黑客……我试图修改,但没有100%成功 目前,JCrop正在使用jquery跟踪.mousedown来启动选择,.mouseup来接受/停止选择。当您使用jcrop单击轨迹板时,blackberry设备(带轨迹板)上会发生什么?当您移动光标时,它会开始绘制选择(您不能单击(按住)并在轨迹板上拖动,这更像是一个单击事件)。问题是,当您再次单击时,它将删除选择并开始从当前光标位置重新绘制它。在我看来,JCrop使用mousedown来跟踪点击和拖动选择过程,然后使用mouseup来释放选择并保留裁剪框 我考虑分配一个变量,比如clickCount跟踪点击,以及一个函数来触发事件。因此,每当用户单击时,它都会运行一个函数来跟踪clickCount并触发开始选择或完成选择事件 以下是对.mousedown和.mouseup的所有引用:Javascript 如何修改jcrop以支持blackberry轨迹板?,javascript,blackberry,crop,jcrop,trackpad,Javascript,Blackberry,Crop,Jcrop,Trackpad,我已经联系了开发人员,他表示我将自己修改代码以支持此方法,因为目前编写的代码不太适合黑客……我试图修改,但没有100%成功 目前,JCrop正在使用jquery跟踪.mousedown来启动选择,.mouseup来接受/停止选择。当您使用jcrop单击轨迹板时,blackberry设备(带轨迹板)上会发生什么?当您移动光标时,它会开始绘制选择(您不能单击(按住)并在轨迹板上拖动,这更像是一个单击事件)。问题是,当您再次单击时,它将删除选择并开始从当前光标位置重新绘制它。在我看来,JCrop使用m
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在技术上只能每隔一段时间触发一次,这可能会阻止释放触发器停止选择。当然,这需要与您的代码进行更深入的集成