JQuery UI Сортируемая Сериализация Списки Сбой Неисправность - PullRequest
2 голосов
/ 14 декабря 2011

Я хочу динамически создать список и сделать его сортируемым.

Моя первая попытка не включала динамическую загрузку данных списка.Я нашел базовый пример для построения здесь:

http://www.webresourcesdepot.com/wp-content/uploads/file/jquerydragdrop/

Когда элемент выбора «списки» изменяется, я получаю целочисленное значение выбора для получения задачсвязан с выбранным списком.

Это то, что я до сих пор.В Firebug список правильно структурирован после загрузки.Я думаю, проблема в том, что я пытаюсь сделать список "сортируемым" после создания его в вызове getJSON.

Я пытался переместить код "// set our listdiv ul как сортируемый и прочее"вызов JSON и за его пределами, но все еще в событии select onChange.

Список отображается, но его нельзя отсортировать.Нет ошибокОзадаченность.: 0

$(document).ready(function(){ 

// our global buildlist var
var buildlist;  




$('#lists').change(function(){

    var selected = $("#lists option:selected");
    var listval = selected.val();
    buildlist = "<ul>";

    $.getJSON('getlist.php?cid='+listval, function(data) {

        for(var i =0;i<data.length;i++)
        {
            var item = data[i];

    //      alert(item.id+","+item.cid+","+item.task+","+item.position);

            buildlist = buildlist + "<li id='listtasks_"+item.id+"'>"+item.task+"</li>";
        } 
        buildlist = buildlist + "</ul>";

    $("#listdiv").html(buildlist);

       });  // end getJSON

// set our listdiv ul as sortable and stuff
    $("#listdiv ul").sortable({ opacity: 0.6, cursor: 'move', update: function(){
        var order = $(this).sortable("serialize") + '&action=update'; 
        $.post("updatelist.php", order, function(){
        });                                                              
    }                                 
    });


});  // end of change lists select box

}); // end doc ready

и это HTML после загрузки списка

<div id="listdiv">
<ul>
<li id="listtasks_1">this is item 1</li>
<li id="listtasks_2">this is item 2</li>
<li id="listtasks_3">this is item 3</li>
<li id="listtasks_4">this is item 4</li>
<li id="listtasks_5">this is itme 5 </li>
</ul>
</div>

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Он должен быть помещен в ваш getJSON обратный вызов.Я знаю, вы говорите, что уже пробовали это, но, по крайней мере, это то, что определенно не так с вашим кодом, как сейчас.Как только это изменится, оно будет работать для меня: Демо .

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

0 голосов
/ 14 декабря 2011

Вам нужно создать экземпляр sortable ПОСЛЕ построения списка внутри функции get success.Прямо сейчас вы делаете это до того, как на самом деле создадите HTML, поэтому нет объекта для сортировки.

...