拖动行为不正常?

时间:2015-08-09 02:52:07

标签: javascript d3.js

我正在尝试使用我的程序中的拖动行为设置找到问题,因为看起来拖动甚至都不会激活。我正在使用http://jsfiddle.net/da37B/317/作为我程序的参考代码。

以下是相关代码:

 vis.selectAll(".nodes")
        .data(nodes)
        .enter().append("circle")
        .attr("class", "nodes")
        .attr("cx", function (d) {
            return xRange(d.x);
        })
        .attr("cy", function (d) {
            return yRange(d.y);
        })
        .attr("r", "10px")
        .attr("fill", "black")
        .attr("transform", "translate(" + p.x + "," + p.y + ")")
        .call(drag); <------
// Define drag beavior
var drag = d3.behavior.drag()
    .on("drag", dragmove);

function dragmove(d) {
    var x = d3.event.x;
    var y = d3.event.y;
    d3.select(this).attr("transform", "translate(" + x + "," + y + ")");
}

这是完整的代码:https://jsfiddle.net/4o5pch1q/1/

1 个答案:

答案 0 :(得分:1)

您没有看到任何效果的原因是您的jsfiddle中有错误。请在未来检查控制台是否有明显的事情。

一旦修复了明显的错误(包括将In [48]: import numpy as np In [49]: np.hstack((1, [2])) Out[49]: array([1, 2]) 的定义向上移动以便在使用之前定义它),唯一剩下的就是告诉D3如何获取被拖动元素的原点(否则圆圈在跳跃时“跳跃”):

¯\_(ツ)_/¯

完整演示here