通过JS增加节点来增加内容到原内容之前

 <html>
    <head>
        <title>insertBefore() Example</title>
        <script type="text/javascript">
            function insertMessage() {
                var oNewP = document.createElement("p");
                var oText = document.createTextNode("Hello Universe!");
                oNewP.appendChild(oText);
                var oOldP = document.getElementsByTagName("p")[0];
                document.body.insertBefore(oNewP, oOldP);
            }
        </script>
    </head>
    <body οnlοad="insertMessage()">
        <p>Hello World!</p>
    </body>
</html>

要实现通过拖拽来增加节点,可以按照以下步骤操作: 1. 创建一个GoJS图表对象,指定图表容器的ID。 ```javascript var myDiagram = $(go.Diagram, "myDiagramDiv"); ``` 2. 定义节点模板,包括节点的外观和行为。 ```javascript myDiagram.nodeTemplate = $(go.Node, "Auto", $(go.Shape, "RoundedRectangle", { fill: "white" }), $(go.TextBlock, { margin: 8 }, new go.Binding("text", "key")) ) ``` 3. 定义一个Palette对象,用于存放可供拖拽的节点。 ```javascript var myPalette = $(go.Palette, "myPaletteDiv"); ``` 4. 将节点模板添加到Palette中,并指定节点所属的类别。 ```javascript myPalette.nodeTemplateMap.add("category1", $(go.Node, "Auto", $(go.Shape, "RoundedRectangle", { fill: "white" }), $(go.TextBlock, { margin: 8 }, new go.Binding("text", "key")) ) ); ``` 5. 定义节点数据,包括节点的唯一标识符和所属类别。 ```javascript var nodeDataArray = [ { key: "Alpha", category: "category1" }, { key: "Beta", category: "category1" }, { key: "Gamma", category: "category1" } ]; ``` 6. 将节点数据添加到Palette中。 ```javascript myPalette.model.nodeDataArray = nodeDataArray; ``` 7. 将Palette对象添加到图表容器中。 ```javascript document.getElementById("myPaletteDiv").appendChild(myPalette.div); ``` 8. 在图表容器中添加一个“Drop”事件处理程序,用于处理拖放操作。 ```javascript myDiagram.div.addEventListener("drop", function(e) { e.preventDefault(); var data = e.dataTransfer.getData("text"); var node = myPalette.model.findNodeDataForKey(data); myDiagram.model.addNodeData(node); }, false); ``` 以上是一个简单的实现过程,具体可以根据需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值