我有一个可排序的列表,里面有一个可放置的项目,也需要排序。 当您拖放项目占位符所在的放置项目旁边的项目时,放置项目在占位符上仍处于活动状态。
这里有一个简单的小提琴:JSFiddle
$("#item-list").sortable();
$(".container").droppable({
accept: ".item",
drop: function (e, ui) {
var dropped = ui.draggable;
var droppedOn = $(this);
$(this).append(dropped.clone().removeAttr('style').removeClass("item").addClass("item-container"));
dropped.remove();
}
});
是否已有解决方案?
答案 0 :(得分:0)
如果您不希望item container
课程可以排序,请使用cancel
$("#item-list").sortable({
cancel: ".item.container"
});
答案 1 :(得分:0)
$("#item-list").sortable();
$(".container").droppable({
accept: ".item",
beforeStop: function(event, ui) {
$(this).html();
},
drop: function (e, ui) {
var dropped = ui.draggable;
var droppedOn = $(this);
if($(droppedOn)[0].innerHTML.indexOf('<div') < 0)
$(droppedOn)[0].innerHTML = '';
$(this).append(dropped.clone().removeAttr('style').removeClass("item").addClass("item-container"));
dropped.remove();
}
});
.item {
width:200px;
height:30px;
border:1px dashed red;
margin:10px 0;
cursor:move;
}
.container {
height:150px;
border:1px dashed black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<div id="item-list">
<div class="item">1</div>
<div class="item">2</div>
<div class="item container">dropbox but still sortable</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
答案 2 :(得分:0)
解决方案是,将其放入您的可排序选项列表中:
refreshPositions: true
这就像一个魅力!
大家好!