嘿所以我似乎无法弄清楚这个问题。基本上我的困境的目标是当项目被拖过div元素时,我希望它返回与div元素紧密响应的元素。
我将div元素的属性设置为与其坐标相对应。
chars = grid
.selectAll("svg")
.data(data.nodes)
.enter()
.append("div")
.attr("class", "gridData")
.attr("gridX", function(d) {return d.x})
.attr("gridY", function(d) {return d.y})
.on('contextmenu', function () {
d3.event.preventDefault()
}).call(drag);
当我使用拖动结束功能时,我想要掌握与坐标相对应的元素。
drag.on('dragend', function(d) {
var hx = helper.datum().x;
var hy = helper.datum().y;
d.x = hx;
d.y = hy;
d3.select(this).transition().duration(100).style('left', d.x + 'px').style('top', d.y + 'px')
.each('end', function () {
helper.remove();
});
if (d.sample === "sample1") {
var selection = d3.selectAll(".gridData").filter("gridX", d.x);
console.log(selection);
d3.select(this).remove();
}
});
除了我的过滤功能为空。我无法弄清楚为什么过滤器功能是空的。选择all返回一个包含所有相应x和y坐标的20个容器的Array。所以我认为它应该回归。