Это должно работать:
$(function() {
$("#catalog").accordion();
$("#catalog li").draggable({
appendTo: "body",
helper: "clone"
});
$("#cart ol").droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
accept: ":not(.ui-sortable-helper)",
drop: function(event, ui) {
$(this).find(".placeholder").remove();
$("<li></li>").text(ui.draggable.text())
.addClass("cart-item")
.appendTo(this);
}
}).sortable({
items: "li:not(.placeholder)",
sort: function() {
$(this).removeClass("ui-state-default");
}
});
$("#catalog ul").droppable({
drop: function(event, ui) {
$(ui.draggable).remove();
},
hoverClass: "ui-state-hover",
accept: '.cart-item'
});
});
Примечания :
- Когда предмет упал в корзину, я добавил класс
cart-item
к новому предмету. - Я сделал каталог
ul
доступным;эта область принимает только cart-item
с.Он вызывает remove()
, чтобы удалить предмет из корзины после того, как падение произошло.
Смотрите, как это работает здесь: http://jsfiddle.net/andrewwhitaker/t97FE/embedded/result/
Вы можете перетащить предмет из корзинык любой категории в каталоге, но я думаю, что было бы довольно просто сделать элементы перетаскиваемыми только в их исходные категории.