JQuery сбрасывается в зависимости от состояния - PullRequest
1 голос
/ 29 ноября 2010

Ниже мой код.

$(document).ready(function(){
    $("#container li").draggable({ revert: 'invalid' });
    var total = 0;
    $("#selected ul").droppable({
        drop: function(e, ui) {
            $(ui.draggable).css({ top: 0, left:  0 }).appendTo(this);
        },
        accept: function() {
            return $("#selected li").length < 5;
        },
        placeholder: true
    });
    $("#container ul").droppable({
        drop: function(e, ui) {
            $(ui.draggable).css({ top: 0, left:  0 }).appendTo(this);
        },
        placeholder: true
    });
});

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

Итак, что я должен сделать, чтобы сделать LI сортируемым?

Вот ссылка: http://www.jsfiddle.net/nick_craver/HemSU/1/

Пожалуйста, нужна помощьчтобы решить это.Спасибо.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2010

Для того, что вы ищете (очень отличается от исходного вопроса), .sortable() было бы более уместно, например:

$(document).ready(function(){
    function checkMax() {
        var max = $("#selected li").length >= 5;
        $("#container ul").sortable("option", { 
            revert: max, connectWith: max ? '' : '#selected ul'
        });
    }
    $("#selected ul").sortable({
        connectWith: '#container ul',
        receive: checkMax
    }).disableSelection();
    $("#container ul").sortable({
        connectWith: '#selected ul',
        receive: checkMax
    }).disableSelection();
});

Вы можете проверитьэто здесь .

1 голос
/ 29 ноября 2010

Ну, вы добавляете в UL, это означает, что он будет последним.

Если вы хотите иметь возможность вставлять его в определенное место в списке, вероятно, вы должны иметь LI как сбрасываемые, а не UL.

И затем пользователь вставляет перед этим LI вместо добавления.

...