在droppable的Drop事件上调用$(item).sortable('cancel')会禁用sortable

时间:2011-12-28 16:26:19

标签: jquery-ui jquery-ui-sortable droppable jquery-ui-droppable

我有一些可排序的连接列表,它们同时是可放置的地方。问题是当我在droppable的drop事件中调用可排序的cancel方法时,sortable会被破坏而不再工作。示例http://jsfiddle.net/zSnBA/10/尝试在第二个列表中移动div编号102:您将看到将调用cancel事件但是可排序不再有效吗?有什么帮助吗?

1 个答案:

答案 0 :(得分:6)

我建议不要将可排序列表设置为可拖动,但请在sortable上听取receive事件以取消该事件:

$('div.products-list').sortable({
    connectWith: '.products-list',
    placeholder: 'ui-state-highlight',
    items: 'div.product',
    revert: 200,
    receive: function(event, ui) {
        var prod_id = ui.item.attr("prod_id");

        /* Equal to 1 is valid because an item was just added to the list: */
        if ($(this).find(".product[prod_id='" + prod_id + "']").length > 1) {
            ui.sender.sortable("cancel");
        }
    }
});

示例: http://jsfiddle.net/z5X5y/