2015-12-03 61 views
0

我嘗試使用d3.jsselect()在我使用拖動事件時在Html屬性中獲取id。 但不知道爲什麼,我在控制檯中看到null但其他類似的代碼是工作d3.select(this).attr()get Undefind

這裏是我的代碼: 1.HTML

<g transform="translate(765,407)" fill="black"><circle r="15" class="sNodes" id="node_id31" onclick="NodesDown(31)" style="stroke: rgb(41, 194, 244); stroke-width: 5px;"></circle><text dx="-20" dy="50" id="node_id31">1255</text></g> 

2.JS

var drag = d3.behavior.drag() 
.on('dragstart', function (d) { 
    d3.select(this).attr('fill', 'black'); 
}) 
.on('drag', function (d) { 
    d3.select(this).attr("transform", "translate(" + d3.event.x + "," + d3.event.y + ")"); 
}) 
.on('dragend', function (d) { 
    var id = d3.select(id).attr("id"); //this not work 
var trans = d3.select(this).attr("transform"); //this work 
}); 

更新: 仍然無法使用。

改變:

.on('dragend', function (d) { 
     var id = d3.select(id).attr("id"); //this not work 
    var trans = d3.select(this).attr("transform"); //this work 
    }); 

到:

.on('dragend', function (d) { 
    var id = d3.select(this).attr("id"); //this not work 
var trans = d3.select(this).attr("transform"); //this work 
}); 
+0

您正在創建一個名爲'id'的變量。所以當你調用'd3.select(id)''id'的值是未定義的...變量'id'的期望值是多少? –

+0

仍然不起作用 –

回答

0

你必須在dragend錯誤。嘗試用它替換它。

.on('dragend', function (d) { 
    var id = d3.select(this).attr("id"); 
    var trans = d3.select(this).attr("transform"); 
}); 
+0

仍然不起作用 –

+0

什麼是你得到的錯誤? – Fawzan

+0

仍然爲「null」thx –