我使用jsplumb繪製動態狀態機圖。點擊一個按鈕後,我需要在繪圖區域添加新框,並允許用戶根據需要定位它。Jsplump動態繪製狀態機圖
我沒有得到任何適當的,容易理解的文檔。我嘗試了幾件事:
var i=8;
function AddDiv() {
var obj = new Date();
var Div = $('<div/>', {
'class':'box ui-draggable ui-draggable-handle ui-droppable',
'id':'box_'+i,
'html':'BOXESNEW'
}).appendTo('.statemachine_cont');
jsPlumb.addEndpoint($(Div), targetEndpoint);
$(Div).draggable(
{
drag: function(){
jsPlumb.repaint($(this)); // (or) jsPlumb.repaintEverything(); to repaint the connections and endpoints
// jsPlumb.addEndpoint($(this));
}
});
$(Div).addClass('box ui-draggable ui-draggable-handle ui-droppable');
}
var a = $("#a");
//Setting up drop options
var targetDropOptions = {
activeClass: 'dragActive'
};
//Setting up a Target endPoint
var targetColor = "#BEBEBE";
var targetEndpoint = {
anchor: "BottomCenter", //Placement of Dot
endpoint: ["Dot", { radius: 8}], //Other types are rectangle, Image, Blank, Triangle
paintStyle: { fillStyle: targetColor }, //Line color
isSource: true, //Starting point of the connector
// scope: "green dot",
connectorStyle: { strokeStyle: "#5C96BC", lineWidth: 2 }, // Means Bridge width and bridge color
connector: ["Bezier"], //Other properties Bezier
maxConnections: -1, //No upper limit
isTarget: true, //Means same color is allowed to accept the connection
dropOptions: targetDropOptions //Means when the drag is started, other terminals will start to highlight
};
jsPlumb.bind("ready", function() {
//Set up endpoints on the divs
jsPlumb.addEndpoint($(".box ui-draggable ui-draggable-handle ui-droppable"), targetEndpoint);
jsPlumb.addEndpoint($(".box ui-draggable ui-draggable-handle ui-droppable"), sourceEndpoint);
jsPlumb.draggable($(".box ui-draggable ui-draggable-handle ui-droppable"));
jsPlumb.animate($("#a"), { "left": 50, "top": 100 }, { duration: "slow" });
});
不知道我做了什麼是正確的,我提到了一些可用的在線代碼並對其進行了修改。
我在這裏的問題是:按鈕點擊我可以添加一個新的框,也能夠從該框中拖動連接。但是當我試圖拖動那個盒子(即改變它的位置)時,連接不會移動。 Box已移動,但我無法移動與框的連接。
當我嘗試移動新添加的盒子或連接到新盒子的盒子時,兩個盒子都可以移動,但連接保持靜止並且不移動。就好像其他箱子被移動一樣,它隨着連接而移動。我添加了一個供參考的圖像。
第1張圖片顯示了新添加的框和新連接的顯示方式。第二張圖片顯示了盒子的移動如何產生問題。
你可以創建一個小提琴來玩。 – 2015-02-13 04:01:28
jsplumb還存在嗎?該網站似乎下降 – swinefeaster 2016-07-13 23:59:14
看起來像網址更改爲[jsplumb](https://jsplumbtoolkit.com/) – Arti 2016-07-14 05:39:01