2012-05-22 3 views
11

Как вы добавляете элемент, который перетаскивается в целевой элемент при удалении, используя перетаскиваемые объекты jQueryUI? Похоже на то, как пользовательский интерфейс jQuery работает прямо сейчас, он просто перемещает элементы вокруг экрана через абсолютное позиционирование. К сожалению, эта функция делает бесполезные представления форм, поскольку вы не можете получить позиции значений при подаче.JQuery UI - Добавить Draggable to Droppable

Заранее благодарим за любые предметы/указатели!

+1

По моему опыту, это фактически изменяет DOM, чтобы отразить новое позиционирование; Я знаю, потому что я обновляю списки (через AJAX) с ним, и это включает в себя сканирование нового порядка div в «завершенном» обратном вызове. Что ты пытаешься сделать? – Sp4cecat

+0

Что именно вы пытаетесь сделать? Похоже, вы можете искать сортировку вместо draggble: http://jqueryui.com/demos/sortable/ –

ответ

23

Если я правильно понял, вы хотите, чтобы перетаскиваемый элемент был отделен от текущего родителя и добавлен в новый, не так ли? Вы можете использовать вспомогательный инструмент для перетаскивания (поэтому исходный элемент не затрагивается), и, после его удаления, отсоедините его и добавьте в цель (спасибо @Oleg и @Brian за улучшение моего исходного ответа).

$(myDraggable).draggable({ 
    helper:"clone", 
    containment:"document" 
}); 

$(myDroppable).droppable({ 
    drop:function(event, ui) { 
     ui.draggable.detach().appendTo($(this)); 
    } 
}); 

Рабочий пример на jsFiddle

+0

Большое вам спасибо за вашу помощь mgibsonbr! Я очень ценю время и усилия, которые вам потребовались, чтобы написать это! – user1110302

+0

Это очень полезно, спасибо –

+2

Вам не нужно использовать какую-либо глобальную переменную для этого - ui.helper - ваш перетаскиваемый объект jq. Вы можете избавиться от методов start/stop, а при отбрасывании - ui.helper.detach(). AppendTo ($ (this)). – Oleg

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