JQuery перетаскиваемый капли удалить упал - PullRequest
12 голосов
/ 26 января 2011

Как удалить товар из корзины?

Естественно, вы захотите перетащить элемент обратно.

$(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() ).appendTo( this );
            }
        }).sortable({
            items: "li:not(.placeholder)",
            sort: function() {
                // gets added unintentionally by droppable interacting with sortable
                // using connectWithSortable fixes this, but doesn't allow you to customize active/hoverClass options
                $( this ).removeClass( "ui-state-default" );
            }
        });
    });

1 Ответ

16 голосов
/ 26 января 2011

Это должно работать:

$(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/

Вы можете перетащить предмет из корзинык любой категории в каталоге, но я думаю, что было бы довольно просто сделать элементы перетаскиваемыми только в их исходные категории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...