5

順序付けされていないリストが3つあり(たとえば#list1、、、)、現在、ユーザーはこれら3つのリストの間を自由に移動できます。アイテムがドロップインされるのを防ぐにはどうすればよいですか?#list2#list3<li>#list3

#list1ユーザーは、アイテムをとの間で自由に移動できる必要があります。また、アイテム他のリストに#list2移動できる必要がありますが、アイテムをドロップすることはできません(どのリストからのものであるかに関係なく)。 #list3#list3

4

2 に答える 2

8

stoporメソッドからfalseを返すbeforeStopと、ソートがキャンセルされます。

が呼び出された.ui-sortable-placeholderときに要素は引き続き配置されるbeforeStopため、場所がにあるかどうかを確認するのに最も簡単な場所である可能性があります#list3

myElement.sortable({
    beforeStop: function (event, ui) {
        if ($("#list3").find('.ui-sortable-placeholder').length) {
            // about to drop item into #list3, so cancel the sort
            return false;
        }
    }
});

交互に:

複数のリストでソート可能ファイルをどのようにインスタンス化するかは正確にはわかりませんが(これまでオプションを使用したことがないため)、各リストで個別に呼び出す場合は、チェックconnectWithする必要がない場合もあります。find()

$("#list1").sortable({
    connectWith: '#list2, #list3'
});
$("#list2").sortable({
    connectWith: '#list1, #list3'
});
$("#list3").sortable({
    connectWith: '#list1, #list3',
    stop: function() { return false; }
});

この2番目の方法が機能するかどうかはわかりませんが、コードがすでに同様に構造化されている場合は、試してみる価値があるかもしれません。

于 2013-02-04T13:46:36.157 に答える
0

試す

$("#list1,#list2,#list3").sortable({
    connectWith: "#list1, #list2"
});

(もちろん、他の並べ替え可能なオプションと一緒に)

于 2013-02-04T14:08:30.430 に答える