点击和keydown同时拖动jQuery事件?
问题描述:
我试图让一个jQuery UI事件触发,只有当它符合被按下的条件时shift键处于keydown状态(模仿被持有),并且如果不禁用事件。点击和keydown同时拖动jQuery事件?
本示例仅在用户单击并保存转换时才使用jQuery UI的.draggable
来拖动容器div。
非工作代码,不知道这是做这做了什么问题的最佳途径。
$(document).click(function(e) {
$('.container').keydown(function() {
if (e.shiftKey) {
$('.container').draggable();
} else {
$('.container').draggable({
disabled: true
});
}
});
});
答
我看到很多错误代码。首先,您只需在点击文档后添加关键字侦听器。其次,您将keydown添加到容器div,而不是整个文档。然后,您还需要听取关键帧,因为释放shift键将禁用可拖动性,那么您还需要将关闭:false设置为关闭移位的情况。你的处理程序缺少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图像由于某些原因变得更加不透明,并且还禁用了页面上其他不相关的可拖动事件。 – Wyck 2012-03-28 03:25:07
我认为这是由于jQuery UI在使项目可拖动时应用的CSS样式,或者禁用可拖动项目。你可以重写这些(通过告诉jQuery使用不同的类或通过在元素上定义你自己的样式) – webjprgm 2012-03-28 03:27:14
哇你的权利,它应用'不透明度:.35; 过滤器:阿尔法(不透明度= 35);',其他问题已解决,我想我必须超过它。 – Wyck 2012-03-28 03:53:13