我有两个列表#sortable1和#sortable 2是连接的排序,如
example所示.
您可以将列表项从sortable1拖放到可排序2.但是,如果sortable 1中的项目包含类“number”,我想防止Sortable2上的下拉,从而使拖动的项目恢复为可排序1.
我在sortable2上使用了以下内容:
receive: function (event,ui) { if ($(ui.item).hasClass("number")) { $(ui.item).remove(); }
但它从两个表中删除列表项.任何帮助将不胜感激.
解决方法
您可以使用beforeStop和sortable(‘cancel’)方法的组合来验证被移动的项目.在
this example,一件物品被丢弃,我检查该物品是否有效:
>检查项目是否具有班级号码
>并检查列表项是否删除在list2中
这是我想要的稍微更硬的代码,所以你可以做的是检查丢弃的项目的父对象,以检查列表是不同的.这意味着您可能在list1和list2中有一个数字项,但它们不可互换.
$(function() { $('ul').sortable({ connectWith: 'ul',beforeStop: function(ev,ui) { if ($(ui.item).hasClass('number') && $(ui.placeholder).parent()[0] != this) { $(this).sortable('cancel'); } } }); });