Нет, невозможно сохранить перетаскивание при замене / удалении элементов в DOM, если вы не измените ядро jquery (что я не рекомендую).
Выполнение replaceWith()
и remove()
для элементов DOM означает, что они уничтожены, и, следовательно, любые действия или события, связанные с ними, также уничтожены.
Попробуйте создать внешний <div>
, который содержит перетаскиваемое поведение, и вместо этого замените HTML-код внутри div
, если вы хотите изменить перетаскиваемый элемент при падении и т. Д.
В качестве альтернативы (и менее элегантно) вы можете снова вызвать draggable()
для ваших элементов после выполнения команды replaceWith()
, чтобы восстановить поведение, которое вы удалили с помощью replaceWith()
.
Аналогично, вместо remove()
попытайтесь hide()
просто заставить элементы исчезнуть на некоторое время, но сохранить их поведение.
Короче говоря: вы неправильно подходите к проблеме. Измените свой подход.