我有一个画布列表,我希望使用一个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
第一次循环调用:只有e3移动,e1和e2保持静止。
第二次循环调用:e3和e2移动,e1保持静止。
循环和其他呼叫的第三次呼叫:一切都在移动。
似乎在所有元素都没有独立移动之前,他们不会一起移动,我不理解这种行为:为什么不考虑其他插入?问题在于,由于这种行为,元素不会移动到应有的位置。