所以我正在寻找的是一种在同一元素上同时使用可排序和可放置的方法。 假设我有一个包含 5 个元素的列表,这些都是可排序的。我想做的是当一个元素被放到另一个元素之上时,它将附加到该元素并离开列表,例如:
<ul>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
</ul>
元素已被删除
<ul>
<li>List Item</li>
<li>List Item</li>
<li>List Item</li>
<li>List Item
<ul>
<li>List Item Dropped</li>
</ul>
</li>
</ul>
如果您有答案或指南,我们将不胜感激!
最佳答案
HTML:
<ul id="theUL">
<li class="item">List Item</li>
<li class="item">List Item</li>
<li class="item">List Item</li>
<li class="item">List Item</li>
<li class="item">List Item</li>
</ul>
这是您的 UL 的 sortable
代码。您需要配置 change
事件。 Change 事件在 sort 事件发生时发生,否则,意味着 drop 事件发生。
$("#theUL").sortable({
revert: true,
items: "li",
change: function( event, ui ) {ui.helper.addClass("change");},
beforeStop: function( event, ui ) {ui.helper.removeClass("change");}
});
在droppable 代码中,检查是否发生变化,如果没有,则表示dropped。
$(".item" ).droppable({
accept: function(el) {
return el.hasClass('item');
},
drop: function (event, ui) {
item=ui.draggable;
if(!item.hasClass('change')){
//dropped!
}
}
});
关于javascript - jQuery 可排序和可放置列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745191/