虽然在IE上这可以在chrome中使用它不会:在按下“Ctrl”时可拖动停止工作中的“Snap”选项,在拖动时按ctrl时我甚至无法获得警报(“SNAP”)。我的尝试是:
$("#object").draggable({
handle: '#handle_',
containment: '#MainBody',
snap: ".drag_alignLines", // Setting snap to alignment lines
snapTolerance: 15
}).bind('keydown', function(event){
alert("SNAP");
if(event.ctrlKey)
{
alert("hi");
this.draggable( "option", "snap", false );
}
});
拖动时无法让Chrome抓住ctrl键... 甚至在IE中:“this.draggable(”option“,”snap“,false);”只是拖动时不要让它停止拍摄...
答案 0 :(得分:1)
您要做的是重置snap选项,如下所示:
$( "#object" ).draggable( "option", "snap", false );
请记住在常规点击时将其设置回原始值。以下是this jsfiddle的相关部分:
$("#object").draggable({
containment: '#MainBody',
snapTolerance: 15,
start: function(event)
{
if(event.ctrlKey)
{
$(this).draggable("option", "snap", false);
}else {
$(this).draggable("option", "snap", '.drag_alignLines');
}
}});
它绑定到'开始'而不是'keydown',所以你不必在击中Control之前瞄准。