У меня есть список холстов, и я хочу переместить некоторые из них по смещению, используя цикл insertBefore.
Вот мой цикл selectedMarkers - это индексы холстов, которые я хочу переместить:
for (let i = 0, l = this.selectedMarkers.length; i < l; i++) {
this.markerMoving(this.selectedMarkers[i], this.selectedMarkers[i] + moveOffset);
}
Функция markerMoving содержит это (markerRenderingElements - список полотен:
[...]
workspace.insertBefore(markerRenderingElements[oldMarkerNumber], markerRenderingElements[newMarkerNumber + 1]);
[...]
Консоль браузера показывает мне, что insertBefore вызывается правильно для всех элементов, но на самом деле, вот чтопроисходит ... Допустим, я хотел переместить 3 элемента: e1 e2 e3
1-й вызов цикла: только e3 перемещается, e1 и e2 остаются неизменными.
2-й вызов цикла: e3 иe2 двигаться, e1 остается статичным.
3-й вызов цикла и другие вызовы: все движутся.
Кажется, что пока все элементы не переместились независимо, они не будут двигаться вместе, и яне понимают этого поведения: почему другие insertBefore не учитываются? Проблема в том, что из-за этого поведения элементы не перемещаются туда, где они должны быть.