0

d3.behavior.drag 関数を使用して、テキスト/図形を別の位置にドラッグしようとしています。最終的に、元の場所から Ruby on rails で実行される SQL DB に移動するときに、新しい位置の変数を保存したいと考えています。

ただし、現在のコードを試した時点では、テキスト/図形は移動せず、代わりに同じ位置に複製されているようです:

         var drag = d3.behavior.drag()
                      .origin(Object)
                      .on("drag", function(d) {
                        d.x = d3.event.x;
                        d.y = d3.event.y;
                       draw();
                    });

次に、テキスト/形状と位置の「描画」機能があります

                  function draw() { 

               // code is within here - check fiddle

                 }

                  draw()

オブジェクト内で x & Y の代わりに translate を使用しているため、機能していないと信じ始めていました。

                var node= [ {name:'amy', country: 'USA', 'translate:"translate(190,83)"}]

私が見たいくつかの例は、代わりにこれを持っています:

              var node= [ {name:'amy', country: 'USA', x: 100, y:0}]

私もこの方法を試しましたが、形状をドラッグすると、形状の繰り返しの跡が残ります。

誰かがなぜこれが起こっているのか説明できれば幸いです/

4

1 に答える 1

1

すべてのノードの翻訳を x と y に変更し、変更します。

node= node.enter().append("g")
                .call(drag)

   node.enter().append("g")
            .call(drag)
           .attr('class', 'node');

作業フィドル: http://jsfiddle.net/Zc4z9/5/

この bl.ocks.org/mbostock/3808218 を確認して、.enter() [および .transition() と .exit()] を確実に理解することをお勧めします。

于 2013-04-16T22:05:54.083 に答える