Jor*_*oon 8 jquery jquery-ui draggable jquery-ui-sortable
我正在努力使拖放也可以排序.我可以从div 1拖到2,从div 2拖到div 1,但因为我使用clone我无法进行排序工作.
有任何想法吗?
$(document).ready(function() {
$("#qselected").sortable();
$("#qselected").disableSelection();
$(".qitem").draggable({
containment : "#container",
helper : 'clone',
revert : 'invalid'
});
$("#qselected, #qlist").droppable({
hoverClass : 'ui-state-highlight',
drop : function(ev, ui) {
$(ui.draggable).clone().appendTo(this);
$(ui.draggable).remove();
$(".qitem").draggable({
containment : "#container",
helper : 'clone',
revert : 'invalid'
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
为了使其正常工作,您不能再将已删除的框中的项目拖动,因为您不知道它是否正在尝试排序或拖动.
这是工作代码: Example JSFiddle
$(document).ready(function() {
$("#qselected").sortable();
$("#qselected").disableSelection();
$(".qitem").draggable({
containment : "#container",
helper : 'clone',
revert : 'invalid'
});
$("#qselected, #qlist").droppable({
hoverClass : 'ui-state-highlight',
accept: ":not(.ui-sortable-helper)",
drop : function(ev, ui) {
$(ui.draggable).clone().appendTo(this);
$(ui.draggable).remove();
}
});
});
Run Code Online (Sandbox Code Playgroud)
为了使其正常工作,您不能允许drop handler接受正在排序的项目,为此,我们将accept过滤器添加到droppable处理程序:
accept: ":not(.ui-sortable-helper)",
Run Code Online (Sandbox Code Playgroud)
现在,这意味着您可以将项目从底部框拖到顶部,然后对顶部框进行排序.但是,您无法再将项目拖到顶部框之外.
您将不得不设计一个新方法来删除它们(可能可以使用标志来删除顶部框的可拖动/可排序功能之间的切换)
| 归档时间: |
|
| 查看次数: |
16833 次 |
| 最近记录: |