を使用せずにイベントターゲット(DOM要素)にアクセスする方法はありますthis
か?私はオブジェクトの中にいthis
て、オブジェクト自体にバインドされたいです。グローバルd3.event
は明らかにターゲットを保存しません-d3.event.target
機能しません。どんな手掛かり?
編集:これが私が実行しているコードです(それはコーヒースクリプトです):
@nodes = @svg.selectAll('g.node')
.data(@nodes, (d) -> d.key)
.enter()
.append('g')
.attr('class', 'node')
.attr('transform', (d) => "translate(#{@x d.x},#{@y d.y})")
@nodes.append('svg:rect')
.attr('width', @x 100)
.attr('height', @y 50)
node_drag = d3.behavior.drag().origin(Object).on('drag', @drag_move)
@nodes.call node_drag
drag_move: (d, i) ->
console.log d3.event.target
ブラウザコンソールの出力は
function e(){this.on("mousedown.drag",t).on("touchstart.drag",t)}
debugger
ステートメントを追加して手動でオブジェクトを検査する場合も同じです。何らかの理由d3.event.target
で、イベントオブジェクトではなく関数を返します。