我可以从d3.event.x
内部访问on("drag"...)
,但是x
中不存在on("dragstart"...)
。为什么?以及如何才能以其他方式获得它,最好不是很黑?
检查控制台输出以获取此示例:
d3.select("body").append("svg").append("rect")
.attr("width", 100)
.attr("height", 100)
.style("color", "black")
.call(
d3.behavior.drag()
.on("dragstart", function(){
console.log(d3.event);
})
.on("drag", function(){
console.log(d3.event);
})
.on("dragend", function(){
console.log(d3.event);
})
);
JSFiddle
最佳答案
@Lars解释了原因,那么您该怎么做? d3.mouse非常漂亮:
d3.behavior.drag()
.on("dragstart", function(){
console.log('relative to rect: ' + d3.mouse(this));
console.log('relative to body: ' + d3.mouse(d3.select("body").node()));
})
更新了example。