Есть ли умный способ получить сортируемую цель в jQueryUI - PullRequest
9 голосов
/ 12 декабря 2010

Я использую пользовательский интерфейс jQuery для связи нескольких списков и позволяю перетаскивать элементы между различными списками.

В событии receive я хочу получить список, в который упал элемент. Это ui.item.parent() правильный способ сделать это, или есть свойство ui или event, которое позволит мне получить доступ к этому напрямую?


<ul><li>item 1</li></ul>
<ul><li>item 2</li></ul>

$('ul').sortable({
    connectWith: 'ul',
    receive: function(event, ui) {
        var targetList = ui.item.parent();
    }
});

Ответы [ 2 ]

8 голосов
/ 23 января 2012

Поскольку в списке получателей вызывается событие receive, вы можете получить нового родителя с помощью $(this). Список источников доступен через ui.sender.

$('ul').sortable({
    connectWith: 'ul',
    receive: function(event, ui) {
        var sourceList = ui.sender;
        var targetList = $(this);
    }
});
8 голосов
/ 12 декабря 2010

Нет, прямого свойства для нового родителя нет (потому что .parent() достаточно просто, вероятно), поэтому то, что вы имеете, является правильным. Вы можете просмотреть все ui свойства здесь .

Если вы хотите .closest(), второго родителя и т. Д. ... лучше оставить UI тонким, поскольку все они достаточно просты для перехода; это также экономит затраты на предоставление ссылок непосредственно на объект ui.

...