如何找出我已将项目放入哪个UL?

时间:2012-08-02 13:19:47

标签: jquery jquery-ui

我使用JqueryUI有三个连接的可排序列表:list1,list 2和list 3.列表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
            }
        }
    }
});

1 个答案:

答案 0 :(得分: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,因为您只允许对具有班级number的项目进行排序。 / p>

修改

如果您根本不希望能够拖入列表3,那么您可以在页面加载时将其排序并使其他列表可排序:

$(function () {
    $('#list1').sortable({
        items: '.number'
    });
    $('#list2').sortable();
});