如何在JS-Plumb中限制在同一个div中建立连接?

时间:2013-02-23 18:25:55

标签: jquery jsplumb

这是我的 Demo in JS Fiddle

HTML

<div id="a" class="a window" style="width: 100px; height: 100px; border: solid 1px">
</div>

JQuery的

    var a = $("#a");
    var b = $("#b");

    //Setting up drop options
    var targetDropOptions = {
        activeClass: 'dragActive'
    };

    //Setting up a Target endPoint
    var targetColor = "#316b31";
    var targetEndpoint = {
        anchor: "TopCenter",
        endpoint: ["Dot", { radius: 8}], 
        paintStyle: { fillStyle: targetColor },
        isSource: true,
        scope: "green dot",
        connectorStyle: { strokeStyle: targetColor, lineWidth: 8 },
        connector: ["Flowchart", { curviness: 63}],
        maxConnections: -1,
        isTarget: true,
        dropOptions: targetDropOptions 
    };

    //Setting up a Source endPoint
    var sourceColor = "#ff9696";
    var sourceEndpoint = {
        anchor: "BottomCenter",
        endpoint: ["Dot", { radius: 8}],
        paintStyle: { fillStyle: sourceColor },
        isSource: true,
        scope: "green dot",
        connectorStyle: { strokeStyle: sourceColor, lineWidth: 8 },
        connector: ["Bezier", { curviness: 63}],
        maxConnections: -1,
        isTarget: true,
        dropOptions: targetDropOptions
    };

    jsPlumb.bind("ready", function () {

        //Set up endpoints on the divs
        jsPlumb.addEndpoint($(".window"), targetEndpoint);
        jsPlumb.addEndpoint($(".window"), sourceEndpoint);

        jsPlumb.draggable($(".window"));
        jsPlumb.animate($("#a"), { "left": 50, "top": 100 }, { duration: "slow" });
    });

查询 - 如何在JS-Plumb中限制在同一div中建立连接?

2 个答案:

答案 0 :(得分:3)

我认为表现明智这是一种更好的方式。您可以在实际创建连接之前做出决定。

jsPlumb.bind("beforeDrop", function(connection) {
    return connection.sourceId !== connection.targetId;
});

答案 1 :(得分:0)

jsPlumb.bind("jsPlumbConnection", function (CurrentConnection) {
        if (CurrentConnection.connection.targetId ==
                                           CurrentConnection.connection.sourceId)
            jsPlumb.detach(CurrentConnection.connection);
        else
            init(CurrentConnection.connection);
    });