D3.js d3强制布局节点即使在IE11 windows 10中释放鼠标点击后也会旋转

D3.js d3强制布局节点即使在IE11 windows 10中释放鼠标点击后也会旋转,d3.js,D3.js,当用户通过鼠标单击拖动节点并释放鼠标单击时,节点在鼠标事件上持续旋转,如中所示 此问题在windows 10的IE11上重现。 这个问题的解决方案是什么 var width = 500; var height = 500; var nodeWidth = 40; var nodeHeight = 40; var circleRadius = 5; var diagramLayout;

当用户通过鼠标单击拖动节点并释放鼠标单击时,节点在鼠标事件上持续旋转,如中所示 此问题在windows 10的IE11上重现。 这个问题的解决方案是什么

        var width = 500;
        var height = 500;
        var nodeWidth = 40;
        var nodeHeight = 40;
        var circleRadius = 5;
        var diagramLayout;
        var graphData = {"nodes":[{"uid":"Term20","name":"Term20","image":"images/Term.png"},{"uid":"glossforArrow","name":"glossforArrow","image":"images/Glossary.png"},{"uid":"Term43","name":"Term43","image":"images/Term.png"},{"uid":"Term1","name":"Term43","image":"images/Term.png"},{"uid":"Term2","name":"Term43","image":"images/Term.png"}],"links":[{"source":"glossforArrow","target":"Term20","direction":"output","label":"Owned Terms"},{"source":"glossforArrow","target":"Term43","direction":"output","label":"Owned Terms"},{"source":"glossforArrow","target":"Term1","direction":"output","label":"Owned Terms"},{"source":"glossforArrow","target":"Term2","direction":"output","label":"Owned Terms"}]};

        forceInitialize(graphData)


            function forceInitialize(graphData){

                diagramLayout = d3.select("#diagramLayout")
                    .attr("id", "diagramLayout")//set id
                    .attr("width", width)//set width
                    .attr("height", height)//set height
                    .append("g")
                    .attr("transform", "translate(" + 20 + "," + 20 + ")")  

                markerRefx = 35;

                simulation = d3.forceSimulation();
                alphaMulti = 1;
                simulation.force("link", d3.forceLink().id(function(d) { return d.uid; }).distance(70).strength(0))
                                .force("charge", d3.forceManyBody().distanceMin(20).distanceMax(50))
                                .force("centre", d3.forceCenter(width/2 , height/2))
                                .force("x", d3.forceX(2))
                                .force("y", d3.forceY(10)) 
                                .force("collide", d3.forceCollide().radius(function(d) { return 80; }).iterations(2))
                simulation.on('end', function() { 
                    simulation.force("link", d3.forceLink().id(function(d) { return d.uid; }).distance(30).strength(0.0).iterations(10))
                    .force("x", d3.forceX().strength(0))
                    .force("y", d3.forceX().strength(0))
               });              

                    force(graphData);   
            }


            //Force Layout
            function force(graphData) {                 

                var linkEnter = diagramLayout.selectAll(".links");
                    linkEnter = linkEnter.data(graphData.links)
                    .enter().append("g")
                    .attr("class", "links")

                var link = linkEnter.append("line")
                    .attr("stroke-width", function(d) { return Math.sqrt(2); }) 
                    .attr("stroke-opacity", "0.3")
                    .attr("stroke", "#000" )




                var node = diagramLayout.selectAll(".node");
                node = node.data(graphData.nodes, function(d) { return d.uid; });

                var nodeEnter = node.enter().append("g")
                .attr("class", "node")
                .attr("height", nodeHeight)
                .attr("width", nodeWidth) 
                .on('contextmenu', menuCall);
                var nodeIcon =   nodeEnter.append("rect")   
                .attr("class", "rect")
                .attr("x", -20)
                .attr("y", -20)
                .attr("rx", 10)
                .attr("width", 40)
                .attr("height", 40)
                .attr("stroke-width", function(d) { return Math.sqrt(2); }) 
                .attr("stroke-opacity", "0.3")
                .attr("stroke", "#000" )
                .attr("fill", "blue" )  
                nodeIcon.call(d3.drag()
                  .on("start", dragstarted)
                  .on("drag", dragged)
                  .on("end", dragended));


                simulation
                    .nodes(graphData.nodes)
                    .on("tick", ticked);

                setTimeout(function tick(){
                simulation.tick();
                if(simulation.alpha() >= .005);
                    setTimeout(tick, 0);
                }, 0);

                simulation.force("link")
                    .links(graphData.links);
                simulation.restart();

                function ticked(e) {

                        link.attr("x1", function(d) { return d.source.x; })
                            .attr("y1", function(d) { return d.source.y; })
                            .attr("x2", function(d) { return d.target.x; })
                            .attr("y2", function(d) { return d.target.y; });


                    nodeEnter.attr("transform", function(d) {d.fixed = true; return "translate(" + d.x + "," + d.y + ")"; });               
                }

                function dragstarted(d) {
                    if (!d3.event.active) simulation.alphaTarget(0.3).restart();
                    d.fx = d.x;
                    d.fy = d.y;
                }

                function dragged(d) {
                    d.fx = d3.event.x;
                    d.fy = d3.event.y;
                }

                function dragended(d) {
                    d3.select(this).classed("fixed", d.fixed = false);
                    d3.selectAll(".node").fixed = true; 
                }

      function menuCall(di,i) {

    }

            }

有人知道这张票的解决方案吗?有人知道这张票的解决方案吗?