【发布时间】:2016-05-27 14:42:19
【问题描述】:
我有一个用作文件管理器的简单脚本。这个想法是选择一组文件/目录并将它们放到另一个目录中。但是,如果一个目录是 .ui 选择的,那么它不应该是可放置的。如果我只选择一组文件/目录一次,那么到目前为止我所拥有的当前脚本可以按预期工作,但是如果我取消选择并重新选择另一个组,它将不再有效。
这是一个演示问题的小提琴:https://jsfiddle.net/3gggh6bg/19/
这里是js:
$(function() {
$("#filemanager").selectable({
filter: 'tr',
start: function() {
$("tr.ui-selected").each(function() {
$(this).draggable('destroy');
});
},
stop: function() {
$("tr.ui-selected").draggable({
helper: function() {
var dom = [];
dom.push("<div style=\"border:2px solid black;width:50px;height:20px;line-height:25px;\">",
"<center>Files Selected: 1</center></div>");
return $(dom.join(''));
},
revert: 'invalid',
appendTo: 'parent',
containment: '#filemanager',
axis: 'y',
cursor: '-moz-grabbing'
});
$(".droppable").not('.ui-selected').droppable({
//accept: ".ui-selected",
//activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
});
}
});
});
任何帮助表示赞赏!谢谢!
【问题讨论】:
-
欢迎来到 Stack Overflow。我看过你的小提琴,但仍然不确定什么不起作用。当我选择一行并拖动它时,我可以将它放到另一行上。然后我可以对其他行重复此操作。
-
如果您选择前 3 个 droppable 并将顶部选定的 droppable 拖到选定的底部 2 个 droppable 上,它们将不起作用(如预期的那样)。但是,如果您尝试在底部 3 上再次执行此操作而不刷新页面,它仍会将顶部 3 保持为选中状态,而不是底部 3。ui-selected 似乎没有重置。我希望这是有道理的,如果你需要我,我可以制作一个很好的 gif 来演示这个问题。
-
仍然无法复制问题,并且仍然不清楚您要完成什么。可选似乎工作正常。
-
如果 droppable 行的类 ui-selected 则 droppable 将不再起作用。这仅适用一次,如果您重新选择不同的 droppables 组,ui-selected 似乎会坚持选择的最后一组。 imgur.com/SCNGFdK 显示问题。它适用于第一个选定的组,但之后它不再按预期工作(如果 droppable 已选择 ui,则不再是 droppable)。
-
好的,所以当我选择多行时,没有函数可以从现在为
ui-selected的那些项目的类列表中删除droppable。我在我选择的行上看到了以下类:selectable droppable ui-selectee ui-selected ui-draggable ui-draggable-handle我想我想了解您预期会发生什么。
标签: jquery jquery-ui jquery-ui-draggable jquery-ui-droppable jquery-ui-selectable