我试图让jQuery UI事件触发,只要它符合在shift键处于keydown状态时被点击的标准(模仿被保持),如果没有禁用该事件。
此示例使用jQuery UI的.draggable
仅在用户点击并保持shift时才拖动容器div。
非工作代码,不确定这是否是执行此操作或出错的最佳方法。
$(document).click(function(e) {
$('.container').keydown(function() {
if (e.shiftKey) {
$('.container').draggable();
} else {
$('.container').draggable({
disabled: true
});
}
});
});
答案 0 :(得分:2)
我发现该代码有很多错误。首先,您只需在单击文档后添加键侦听器。其次,您将keydown添加到容器div,而不是整个文档。然后,您还需要监听密钥,因为释放shift键应该禁用可拖动性,然后您还需要将shift:false传递给shift关闭的情况。并且您的处理程序缺少e
参数。试试这个:
$(function(e) {
var handler = function(e) {
if (e.shiftKey) {
$('.container').draggable({
disabled: false
});
} else {
$('.container').draggable({
disabled: true
});
}
};
$(document).keydown(handler);
$(document).keyup(handler);
});