Jquery 如何使用箭头键移动选定图元

Jquery 如何使用箭头键移动选定图元,jquery,jquery-ui,jquery-ui-draggable,keyboard-events,jquery-ui-selectable,Jquery,Jquery Ui,Jquery Ui Draggable,Keyboard Events,Jquery Ui Selectable,除了通过鼠标移动外,箭头键还应逐像素移动选定元素 我尝试了下面的代码,但没有发生按键事件。要复制,请选择元素usong laoos并按箭头键。什么也没发生。 如何修复此问题,以便可以使用箭头移动元素 小提琴: .设计师小组成员{ 最小高度:1px; 溢出:隐藏; 保证金:0; 填充:0; } .面板页脚{ 背景色:继承; } .设计师小组, .设计师重新设定利润率{ 保证金:0; 填充:0; } .设计师verticalline, .设计师horizontalline, .designer矩

除了通过鼠标移动外,箭头键还应逐像素移动选定元素

我尝试了下面的代码,但没有发生按键事件。要复制,请选择元素usong laoos并按箭头键。什么也没发生。 如何修复此问题,以便可以使用箭头移动元素

小提琴:


.设计师小组成员{
最小高度:1px;
溢出:隐藏;
保证金:0;
填充:0;
}
.面板页脚{
背景色:继承;
}
.设计师小组,
.设计师重新设定利润率{
保证金:0;
填充:0;
}
.设计师verticalline,
.设计师horizontalline,
.designer矩形{
字号:1pt;
边框:1px实心#000000;
}
.designer字段{
边框:1px实心浅灰色;
空白:预处理;
溢出:隐藏;
}
.ui选择{
背景色:淡天蓝;
颜色:白色;
}
.ui已选定{
背景色:淡天蓝;
边框颜色:深蓝色;
颜色:白色;
}
.设计师标签{
空白:预处理;
/*溢出:隐藏*/
}
.设计师领域,
.设计师标签{
字体系列:“新罗马时代”;
字号:10pt;
z指数:2;
}
.设计师verticalline,
.设计师horizontalline,
.设计师矩形,
.设计师领域,
.设计师形象,
.设计师标签{
位置:绝对位置;
}
函数getpos(e){
返回{
X:e.pageX,
Y:e.pageY
};
}
功能Rect(启动、停止){
this.left=Math.min(start.X,stop.X);
this.top=Math.min(start.Y,stop.Y);
this.width=Math.abs(stop.X-start.X);
this.height=Math.abs(stop.Y-start.Y);
}
$(函数(){
var startpos;
所选变量=$([]),
偏移量={
排名:0,
左:0
};
$(“.designer verticalline、.designer矩形、.designer字段、.designer图像”).Resizeable();
// http://stackoverflow.com/questions/705250/is-there-a-jquery-plugin-which-combines-draggable-and-selectable#8643716
//特哈:卡塞达·卡苏塔达,卡穆塞敦·米斯·安迪斯·维加的封印
var$liigutatavad=$(“.designer垂直线、.designer水平线、.designer矩形、.designer字段、.designer图像、.designer标签”);
$liigutatavad.draggable({
开始:功能(事件、用户界面){
var$this=$(this);
if($this.hasClass(“ui已选定”)){
//如果选中此选项,请附加当前偏移
//将每个选定元素的
selected=$(“.ui selected”)。每个(函数(){
var el=$(本);
el.data(“偏移量”,el.offset());
});
}否则{
//如果未选择此选项,请清除当前选择
选定=$([]);
$liigutatavad.removeClass(“选中的ui”);
}
offset=$this.offset();
},
拖动:函数(事件、ui){
//同时拖动所有选定图元
var dt=ui.position.top-offset.top,
dl=ui.position.left-offset.left;
已选择。不是(此)。每个(函数(){
var$this=$(this);
var elOffset=$this.data(“偏移量”);
$this.css({
top:elOffset.top+dt,
左:elOffset.left+dl
});
});
//这并不能解决以下问题:
//$(“.designer verticalline、.designer矩形、.designer字段、.designer图像”).Resizeable();
}
});
//…但手动执行选择以防止来自draggable()的干扰
$(“.designer面板主体”)。在(“单击”,“div”,功能(e){
if(/*!e.metaKey&*/!e.shiftKey&&!e.ctrlKey){
//如果未按住meta/shift键,则取消选择其他元素
$(“.designer面板体”).removeClass(“选定的ui”);
$(此).addClass(“选定的ui”);
}否则{
if($(this).hasClass(“已选择ui”)){
$(此).removeClass(“选中的ui”);
}否则{
$(此).addClass(“选定的ui”);
}
}
//变量可选=$(“#容器”)。数据(“可选”);
//可选。刷新();
//$(“.designer面板主体”)。数据(“可选”)。\u鼠标顶(空);
});
$(“.designer面板体”)。可选({});
$(“.designer面板主体”).keydown(函数(e){
开关(e.which){
案例37://左
$(“.ui已选定”)。每个(函数(){
var$this=$(this);
$this.css({
左:$this.left-2
});
});
打破
案例38://以上
$(“.ui已选定”)。每个(函数(){
var$this=$(this);
$this.css({
top:$this.top-2
});
});
打破
案例39://对
$(“.ui已选定”)。每个(函数(){
var$this=$(this);
$this.css({
左:$this.left+2
});
});
打破
案例40://向下
$(“.ui已选定”)。每个(函数(){
var$this=$(this);
$this.css({
top:$this.top+2
});
});
打破
默认值:return;//退出其他键的处理程序
}
e、 preventDefault();//防止默认操作(滚动/移动插入符号)
});
});
vnimi+#39'+杜克·塔苏多克
杜克·库帕耶夫
m、 菲尔马
伊瑟·泰利丰
ise.regnr
电话。
注册编号
伊瑟·塔纳夫
伊瑟·瓦特佩诺
KMKR nr
rtri(ise.Postinidek)+和#39'+rtri(ise.piirkond)
aarve(dok.arvekonto和#39;konto.arveldusar和#39;)
A/A
klient.regnr
克利特·尼米
注册编号
马克萨
克莱特·塔纳夫
克利特·瓦特派诺
KMKR nr
rtri(klient.postindek)+和#39' +rtri(klient.piirkond)
sql(“sele transfld(';nimetus';,'