![](/img/trans.png)
[英]in a jQuery sortable connected to a draggable list, how can I tell the particular list item that the draggable item was dropped onto?
[英]Make sortable elements draggable which can be dropped on a droppable and can be again connected to the list when dragged back
我想使用jQuery-ui
draggable
, droppable
和sortable
。
我的功能如下:
droppable
的div
droppable
上,它们可以在div
自由移动 我已经包含了一些可能有助于使其更清晰的图像:
左侧的可排序列表和一个空div,它限制右侧可拖动元素的移动。
元素C从可排序列表移动到div。 它可以放在这个div中的任何地方,但不能放在它之外。 它也可以连接回可排序的。
元素C连接回可排序。
任何帮助将不胜感激。 谢谢!
以下是我的代码:
$("#sortable1").sortable({
connectWith: '.connectedSortable, #trash'
}).disableSelection();
$("#drop_zone").droppable({
accept: ".connectedSortable li",
hoverClass: "ui-state-hover",
drop: function (ev, ui) {
ui.draggable.sortable("destroy");
ui.draggable.draggable({
connectToSortable: "#sortable1",
containment: "#drop_zone"
});
}
});
<ul id="sortable1" class="connectedSortable ui-helper-reset">
<li class="ui-state-default">A</li>
<li class="ui-state-default">B</li>
<li class="ui-state-default">C</li>
<li class="ui-state-default">D</li>
</ul>
<ul id="drop_zone" class="ui-helper-reset"></ul>
像这样的东西? http://jsfiddle.net/yfc9h4gq/
你可以这样做:
HTML
<ul id="sortable1" class="connectedSortable ui-helper-reset">
<li class="ui-state-default">A</li>
<li class="ui-state-default">B</li>
<li class="ui-state-default">C</li>
<li class="ui-state-default">D</li>
</ul>
<ul id="drop_zone" class="ui-helper-reset"></ul>
JS
$("#sortable1").sortable({
stop: function(event, ui){
ui.item.attr("style","");
}
});
$("#drop_zone").droppable({
accept: ".connectedSortable li",
hoverClass: "ui-state-hover",
drop: function (ev, ui) {
var item = ui.draggable.clone();
ui.draggable.remove();
item.appendTo($(this));
item.draggable({
connectToSortable: "#sortable1",
});
}
});
我创建了这个DEMO
我添加了一个新的<div id="main_container">
,其中包含可排序列表和droppable。 所以现在在将元素放入droppable之后,droppable将包含在#main_container
这是代码:
HTML:
<div id="main_container">
<ul id="sortable1" class="connectedSortable ui-helper-reset">
<li class="ui-state-default">A</li>
<li class="ui-state-default">B</li>
<li class="ui-state-default">C</li>
<li class="ui-state-default">D</li>
</ul>
<ul id="drop_zone" class="ui-helper-reset"></ul>
</div>
JS:
$("#sortable1").sortable({
stop: function(event, ui) {
ui.item.attr("style", "");
}
});
$("#drop_zone").droppable({
accept: ".connectedSortable li",
hoverClass: "ui-state-hover",
drop: function(ev, ui) {
ui.draggable.remove();
var item = ui.draggable.clone();
item.appendTo($(this));
item.draggable({
connectToSortable: "#sortable1",
containment: "#main_container"
});
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.