jsPlumb:端点错误的位置

时间:2016-05-13 14:05:39

标签: javascript html dojo jsplumb

使用Dojo,以编程方式创建框并在放置框后将其放置在主div的内部div中我使用addEndpoint()将端点添加到我的框中,问题是端点没有放入正确的位置。 这是我的代码

<div data-dojo-attach-point="containerNode" class="divCenter navEditorDiv" style="">
<button data-dojo-attach-event="onClick: showPopOut" data-dojo-attach-point="createNode"
        class="btn  btn-primary fa fa-plus-square position" style=""></button>

<div data-dojo-attach-point="navigationNode"></div> </div>

上面的代码是我的HTML

jsplumbInstance: function () {
        if (!this._instance) {
            this._instance = jsPlumb.getInstance({
                // default drag options
                DragOptions: {cursor: 'pointer', zIndex: 2000},
                // the overlays to decorate each connection with.  note that the label overlay uses a function to generate the label text; in this
                // case it returns the 'labelText' member that we set on each connection in the 'init' method below.
                ConnectionOverlays: [
                    ["Arrow", {
                        location: 1,
                        visible: true,
                        id: "ARROW",
                        /* events:{
                         click:function() { alert("you clicked on the arrow overlay")}
                         }*/
                    }],
                    ["Label", {
                        location: 0.8,
                        id: "label",
                        cssClass: "aLabel fa fa-times",
                        /*events:{
                         tap:function() { jsPlumb.remove("label");}
                         }*/
                    }]
                ],

               Container: this.navigationNode
            });

        }
        return this._instance;
    },

上面的代码是我的jsPlumb实例,其中&#34; Container&#34;设置为innerDiv dojo附加点

 leftEndPoints: function () {
        connectorPaintStyle = {
            lineWidth: 4,
            strokeStyle: "#61B7CF",
            joinstyle: "round",
            outlineColor: "white",
            outlineWidth: 2
        },
            // .. and this is the hover style.
            connectorHoverStyle = {
                lineWidth: 4,
                strokeStyle: "#216477",
                outlineWidth: 2,
                outlineColor: "white"
            },
            endpointHoverStyle = {
                fillStyle: "#216477",
                strokeStyle: "#216477"
            };
        var sourceEndpoint = {
            anchor: "RightMiddle",
            endpoint: "Dot",
            paintStyle: {
                strokeStyle: "#7AB02C",
                fillStyle: "transparent",
                radius: 7,
                lineWidth: 3
            },
            isSource: true,
            connector: ["Flowchart", {stub: [40, 60], gap: 10, cornerRadius: 5, alwaysRespectStubs: true}],
            connectorStyle: connectorPaintStyle,
            hoverPaintStyle: endpointHoverStyle,
            connectorHoverStyle: connectorHoverStyle,
            deleteEndpointsOnDetach: false,
            dragOptions: {},
            maxConnections: -1,
            overlays: [
                ["Label", {
                    location: [0.5, 1.5],
                    label: "Drag",
                    cssClass: "endpointSourceLabel",
                    visible: false
                }]
            ],
        };
        return sourceEndpoint;
    },

上面的代码是我的jsPlumb端点

domConstruct.place(rootWidget.boxNode, that.navigationNode);
that.jsplumbInstance().addEndpoint(rootWidget.boxNode,that.leftEndPoints());

使用Dojo domConstruct.place我将盒子放在innerDiv中,放置后我将端点添加到它。

请帮我解决。

错误位置的屏幕截图

enter image description here

预期结果截图

enter image description here

1 个答案:

答案 0 :(得分:3)

您可以使用样式设置父容器 position: absolute;来解决这个问题。