2017-09-23 112 views
0

我正在嘗試使用D3的拖動功能「拖動圓點」(一個svg圓圈)。爲了保持模塊化,我有多個文件。在「App.js」文件中實例化一個來自「Dot類」文件的點是可行的!然而,拖動行爲是平穩的。在模塊化ES6中使用D3

我一直在這一段時間,修補和「谷歌搜索」。現在拉頭髮。我需要第二套眼睛。我錯了什麼?

謝謝!

Dot.js:

import * as d3 from "d3"; 

export class Dot { 
    constructor(cx, cy, rad){ 
    this.cx = cx; 
    this.cy = cy; 
    this.radius = rad; 
    this.svg = null; 
    this.dot = null; 
    this.width = 199; 
    this.height = 533; 
} 

    buildDot(){ 
    this.dot = 
    d3.select("body").append("svg").attr("width",this.width).attr("height",this.height).append("circle").attr("cx",this.cx).attr("cy",this.cy).attr("r",this.radius); 
    return this.dot; 
    } 

    onDrag(){ 
    console.log("dragging"); 
    } 
} 

App.js:

import {Dot} from './js/Dot'; 
import * as d3 from "d3"; 

(function(){ 

    var dot = new Dot(200, 200, 99).buildDot(); 
    console.log(dot); 
    dot.call(d3.drag().on("drag", dot.onDrag)); 

})(); 

回答

0

確定。所以,問題是當我「建立」0​​時,我隨後要求drag eventlistener在dot元素上調用onDrag。這是,我沒有從「Dot」類實例調用onDrag方法。

這麼多時間......在我來這裏之前,我需要一種健全的檢查方式。