Сортировать таблицу с несколькими Tbody? - PullRequest
2 голосов
/ 08 августа 2011

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

Мне удалось настроить код и сортировку.Однако, когда я перетаскиваю элементы из главы 4, они передаются в порядке элементов из главы 1, поскольку они предшествуют главе 4.

Может ли кто-нибудь помочь мне с сортировкой только соответствующих элементов ??

ПРИМЕЧАНИЕ. Этот список динамически поступает из базы данных.Поэтому меня интересует один код jquery, охватывающий все биты упорядочения.

        <table id=subsortsortable>
        <tbody class=content>
            <tr id="chapter_1"><td>Chapter one</td></tr>
            <tr id="chapter_2"><td>Chapter two</td></tr>
            <tr id="chapter_3">
                <td>
                    <table>
                        <tbody class=subcontent>
                            <tr id="item_31"><td>three.one</td></tr>
                            <tr id="item_32"><td>three.two</td></tr>
                        </tbody>
                    </table>
                </td>
            </tr>
            <tr id="chapter_4">
                <td>
                    <table>
                        <tbody class=subcontent>
                            <tr id="item_41"><td>four.one</td></tr>
                            <tr id="item_42"><td>four.two</td></tr>
                            <tr id="item_43"><td>four.three</td></tr>
                            <tr id="item_44"><td>four.four</td></tr>
                            <tr id="item_45"><td>four.five</td></tr>
                        </tbody>
                    </table>
                </td>
            </tr>
            <tr id="chapter_4"><td>Chapter Four</td></tr>
        </tbody>
    </table>

Я использую следующий код:

//for sorting chapters - which is outer table
$("#subsortable tbody.content").sortable({      
        opacity: 0.7, 
        cursor: 'move', 
        placeholder: "ui-state-highlight",
        forcePlaceholderSize: true,
        update: function(){
            var order = $('#subsortable tbody.content').sortable('serialize') + '&action=updateChaptersOrder';
            $.post("/admin/ajax/ajax_calls.php", order, function(theResponse){
            });

        }

    });

// For sorting and updating items within a specific chapter - which is nested tbody
$("tbody.sortItems").subcontent({

        opacity: 0.7, 
        cursor: 'move', 
        placeholder: "ui-state-highlight",
        forcePlaceholderSize: true,
        update: function(){
            var order = $('tbody.subcontent').sortable('serialize');// + '&action=updateListings';
            $.post("/admin/ajax/ajax_calls.php", order, function(theResponse){
            });

        }

    });

1 Ответ

1 голос
/ 16 августа 2011

У меня есть ответ на мой собственный вопрос .. На случай, если кто-то еще столкнется с той же проблемой.Я изменил следующий код во внутренней таблице:

var order = $('tbody.subcontent').sortable('serialize'); 

на

var order = $(this).sortable('serialize'); 
...