2010-12-12 2 views
8

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

В 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(); 
    } 
}); 

ответ

8

Нет, нет прямой собственности для нового родителя (потому что .parent() легко достаточно вероятно), так что у вас есть правильный. You can view all the ui properties here.

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

+0

Grand, спасибо, что оплатил это. Меня немного беспокоило, но я думаю, что смогу это преодолеть! – Armand

+0

@Alison - добро пожаловать :) –

6

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

$('ul').sortable({ 
    connectWith: 'ul', 
    receive: function(event, ui) { 
     var sourceList = ui.sender; 
     var targetList = $(this); 
    } 
}); 
+0

Забавный. ui.sender имеет значение null для метода update(). –

Смежные вопросы