2016-07-26 21 views
0

のようなものはおそらくなので、おそらく何らかの脳の損傷atmがあります。d3.jsでドラッグされた要素のIDを取得

私は手動で(Reactを介して)レンダリングされたsvgサークルの束を得ました。私はそれらのすべてにd3ドラッグ動作をつけています。ドラッグ動作が適用され、ドラッグ機能が実行されていますが、これらのサークルのいずれかをドラッグすると、どちらが移動されたのかわからないため、対応できません。 ドラッグされた要素のIDはどこで入手できますか

私はいくつかの他の質問をチェックし、ちょうどいくつかのクレイジーフィルタソリューションを見つけました...それはできません。

私はまたdocsを見て、subjectというプロパティを見つけました。しかし、私はどこでもそれを試しています。

マイコード:

d3.select(this).attr("id"); //or class etc. 

componentWillUpdate() { 
    let nodes = d3.selectAll("circle"); 

    const dragFn = (d,i) => { 
     d3.event.sourceEvent.stopPropagation(); 
     this.props.onNodeDrag(I_NEED_AN_ID_HERE); 
    } 

    const dragBehavior = d3.behavior.drag(); 
    dragBehavior.on('drag', dragFn); 
    dragBehavior.on('dragstart',() => { 
     d3.event.sourceEvent.stopPropagation(); 
    }); 

    nodes.call(dragBehavior); 
    } 
+0

あなたの質問に答えを編集しないでください!参照:[* "ユーザーが受け入れた回答を自分の質問に編集するのは問題ないですか?] *(http://meta.stackoverflow.com/questions/262806)、[*"あなたの質問に答えるか編集する方が良いですか?解決策を投稿するには?*](http://meta.stackoverflow.com/questions/307553)、[* "問題の自己解答を編集する" *](http://meta.stackoverflow.com/questions/278050) )など。既存の答えが十分ではないと思うなら、それを自己回答に入れてください。 – altocumulus

+0

@altocumulus:ありがとう、ありがとう。 – Damb

答えて

3

私はあなたとhtml要素の任意の属性を取得することができますどのようなあなたの「これは」関数の内部ではなく、プレーンのjsにあるかわかりませんhttp://jsfiddle.net/a2QpA/343/

01:それは

d3.select(this).select("circle").attr("id"); 

を包んだ場合はここでは一例です

+1

ありがとうございました:)このコンテキストを保存するためにコードを少し変更し、d3.select(this)を使用しました。質問を更新し、この回答を少し受け入れます。 – Damb

関連する問題