Jquery ui 单击并同时键入可拖动的jQuery事件?
我试图让jQueryUI事件触发,只有当它满足在shift键处于keydown状态时被单击的条件时(模拟被按住),如果不满足,则禁用该事件 本例仅当用户单击并按住shift键时,才使用jQuery UI的Jquery ui 单击并同时键入可拖动的jQuery事件?,jquery-ui,draggable,keydown,Jquery Ui,Draggable,Keydown,我试图让jQueryUI事件触发,只有当它满足在shift键处于keydown状态时被单击的条件时(模拟被按住),如果不满足,则禁用该事件 本例仅当用户单击并按住shift键时,才使用jQuery UI的.draggable拖动容器div 非工作代码,不确定这是否是执行此操作的最佳方法,或者是哪里出了问题 $(document).click(function(e) { $('.container').keydown(function() { if (e.shiftKe
.draggable
拖动容器div
非工作代码,不确定这是否是执行此操作的最佳方法,或者是哪里出了问题
$(document).click(function(e) {
$('.container').keydown(function() {
if (e.shiftKey) {
$('.container').draggable();
} else {
$('.container').draggable({
disabled: true
});
}
});
});
我看到该代码有很多错误。首先,只有在单击文档后才能添加密钥侦听器。其次,将keydown添加到container div,而不是整个文档。然后,您还需要听keyup,因为释放shift键应该禁用draggability,那么您还需要将disabled:false传递给shift为down的情况。您的处理程序缺少
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);
});
在简单的演示中效果很好,所以谢谢,代码被弄乱了,但在实际使用中它仍然会导致奇怪的问题,因为一个draggable.png图像由于某种原因在shift发布时变得更加不透明,它还禁用了页面上其他不相关的可拖动事件。我认为这是由于jQuery UI在使某个项成为可拖动项或禁用可拖动项时应用了CSS样式造成的。您可能可以覆盖这些(通过告诉jQuery使用不同的类或在元素上定义自己的样式)哇,对了,它正在应用
opacity:.35;过滤器:α(不透明度=35)代码>,其他问题已解决,我想我必须克服它。