当我使用拖动事件时,我尝试使用d3.js
select()
来获取Html属性中的id。
但不知道为什么我在我的控制台中获得null
,但其他类似的代码是工作
这是我的代码: 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 :(得分:0)
dragend
出错。尝试用它替换它。
.on('dragend', function (d) {
var id = d3.select(this).attr("id");
var trans = d3.select(this).attr("transform");
});