Динамический сортируемый
Версия Codepen
Описание
У меня проблема с динамическим сортируемым списком, элементы которого также должны сортироваться.
Проблема в том, что каждый элемент в списке является динамическим, так как он будет клонирован из шаблона div и добавлен в документ.
Выпуск
В настоящее время блоки (. Pb-row) сортируются, как и ожидалось.
Но вложенная сортировка для динамически добавляемых виджетов (. Builder-row-content) не работает.
Только вложенные узлы в первом блоке могут быть перетаскиваемыми и очень глючными.
Также я могу перетащить их за пределы ряда.
Узлы из дополнительно добавленных блоков вообще не перетаскиваются.
Также я получаю это сообщение в консоли
не может вызывать методы для сортировки до инициализации; попытался вызвать метод «refresh»
код
HTML для запуска сортировки:
<div class="pb-rows"> // Wrapper of all Blocks
<div class="pb-row" name="pb-row"> // each Block
<div class="builder-row-header">
<span class="row-btn pb-handle fas fa-sort"></span>
<div>Block</div>
<span onclick="handleRemoveClick(this)" class="row-btn row-btn-right pb-remove fas fa-trash"></span>
</div>
<div class="pb-container">
<div class="builder-row-content">
// nested sortable widgets will appear here
</div>
</div>
</div>
// more .pb-rows will appear here
</div>
Попытка сортировки списка jQuery:
// jQuery Sorting Lib
jQuery(".pb-rows").sortable({
handle: ".pb-handle",
cursor: "grabbing",
});
// jQuery Sorting Lib
jQuery(".builder-row-content").sortable({
connectWith: '.pb-rows
handle: ".pb-handle-widget",
cursor: "grabbing",
});
Попытка решения, которая не работает:
const handleAddClick = e => {
e.preventDefault();
...
jQuery(".builder-row-content").sortable("refresh");
};
Скриншот
Скриншот реализации