0

JqueryUIを使用して、list1、list 2、list 3 の 3 つの並べ替え可能なリストを接続しています。List 1 の特定の項目には、クラスがありnumberます。これらのnumberアイテムをドラッグすると、リスト 2 にのみドロップできますが、リスト 3 にはドロップできません。どのリストにドロップしようとしているのかを調べるにはどうすればよいですか?

$("#list1").sortable({
    start: function(event, ui) { 
        beforeStop: function (event, ui) {
            if ($(ui.item).hasClass("number")) {
                //Check which list is targeted
                //If List 3 then 
                //$(List 3).sortable('cancel');
                //End If
            }
        }
    }
});
4

1 に答える 1

0

更新イベントでアイテムを確認できます。jQueryのドキュメントから:

このイベントは、ユーザーが並べ替えを停止し、DOM の位置が変更されたときにトリガーされます。

このようなものがうまくいくかもしれません:

update: function (e, ui) {
    var target = ui.item;
    var parent = item.closest('ul');
    if (parent.hasClass('thirdList')) {
        // do stuff
    }
    else {
        // do stuff
        return false;
    }
}

number私があなたの状況を理解していることから、 classを持つアイテムのみの並べ替えを許可できるため、 class を確認する必要はないと思いますnumber

編集:

リスト 3 にまったくドラッグできないようにする場合は、ページがロードされたときから並べ替え可能にせず、他のリストを並べ替え可能にすることができます。

$(function () {
    $('#list1').sortable({
        items: '.number'
    });
    $('#list2').sortable();
});
于 2012-08-02T13:27:33.370 に答える