Пользовательский интерфейс сортировки Store and Restore с несколькими списками соединений

У меня есть связанный сортируемый список из трех. Я сохранил заказ в базе данных (MySQL), но не смог восстановить..

<div class="sortable1">
<div id="widget1"></div>
<div id="widget2"></div>
<div id="widget3"></div>
</div>

<div class="sortable2">
<div id="widget4"></div>
<div id="widget5"></div>
<div id="widget6"></div>
</div>

<div class="sortable3">
<div id="widget7"></div>
<div id="widget8"></div>
<div id="widget9"></div>
</div>

Но у меня есть массив предыдущего сортируемого результата, как

var savedOrder = [["widget5","widget2","widget3","widget1"],["widget4","widget10","widget7"],["widget8","widget9","widget6"]];

Как восстановить с помощью вышеуказанного массива?

1 ответ

Решение

Прежде всего, почему бы не переупорядочить в соответствии со значением базы данных при отображении его на странице. Я не могу помочь вам в этом, вам нужно выяснить это самостоятельно.

Но, если речь идет об использовании JavaScript/jQuery, то используйте следующую при загрузке документа

$(document).ready(function(){
     //......Code goes here
});

или создать событие сортируемого т.е.

$(".sortable").sortable(function(){
   create : function(){
           //.......Code goes here
     }
  })

И добавьте следующий блок к соответствующим блокам (или любой из сортируемых инициализаций),

    var oldList, newList, item;
    var savedOrder = [
        ["widget5", "widget2", "widget3", "widget1"],
        ["widget4", "widget10", "widget7"],
        ["widget8", "widget9", "widget6"]
    ];
    var sortableSelector;
    $(savedOrder).each(function (key, value) {
        if (key == 0) {
            sortableSelector = ".sortable1";
        } else if (key == 1) {
            sortableSelector = ".sortable2";
        } else {
            sortableSelector = ".sortable3";
        }
        $(value).each(function (i, data) {
            //Detach element from the Document 
            var element = $("." + data).detach();
            //Append it to respective sortable 
            $(sortableSelector).append(element);
        });
    });

Что сделано?

  • Сначала итерируйте цикл сортировки
  • Собирайте сортируемые предметы и отсоединяйте их от DOM. Затем добавьте к соответствующему сортируемому

Вот рабочая скрипка

Я надеюсь, что это поможет вам.

Другие вопросы по тегам