JS insertBefore循环内部的不同元素:有些是在下一个循环调用

时间:2018-05-30 08:50:27

标签: javascript loops appendchild

我有一个画布列表,我希望使用一个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保持静止。

循环和其他呼叫的第三次呼叫:一切都在移动。

似乎在所有元素都没有独立移动之前,他们不会一起移动,我不理解这种行为:为什么不考虑其他插入?问题在于,由于这种行为,元素不会移动到应有的位置。

0 个答案:

没有答案