0

我有三个使用JqueryUI连接的可排序列表:list1、list 2 和 list 3。List 1 中的特定项目具有 class 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;
    }
}

根据我对您的情况的了解,我认为没有必要检查 class number,因为您可以只允许对具有 class 的项目进行排序number

编辑:

如果您根本不想拖到列表 3 中,则不能从页面加载时将其排序并让其他列表可排序:

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