1

我使用 Konva js 作为画布库。我将每个添加的元素单独存储在数据库中,并在用户再次进入编辑器时加载它们。为了实现这一点,我迭代了一个包含 json 格式的每个节点的对象。我面临的问题是每个函数只适用于添加的最后一个元素(即在鼠标按下时,只有最后一个 elem_id 被提醒)。非常感谢任何帮助。

    function showExElem(elem_obj) {
    //Iterate over the object - create each element - assign to current layer
    for (var key in elem_obj) {
        var elem_json = elem_obj[key][0];
        var elem_container_json = elem_obj[key][1];
        var elem_id = elem_obj[key][2];
        //Transform into elem and container
        var realized_elem = Konva.Node.create(elem_json);
        var realized_elem_container = Konva.Node.create(elem_container_json);
       
        //Add to layer and redraw
        layer.add(realized_elem);
        realized_elem_container.nodes([realized_elem]);
        layer.add(realized_elem_container);

        //Draw the layer
        layer.draw();

        //On click of the element show the element container and trigger the edit fields at the top
        realized_elem.on('mousedown', function () {
            alert(elem_id);
            //Hide all other containers
            var containers = layer.find('.container');
            containers.hide();
            //Show the element container
            realized_elem_container.show();

        });

    }
}
4

0 回答 0