我正在尝试动态模拟点击,我已经用这个函数为三个缩进树做了它:
document.onmousemove = function(e) {
cursorX = e.pageX;
cursorY = e.pageY;
}
function ret_vw(v) {
var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
return (v * w) / 100;
}
function simulateClick(x, y) {
var s = d3.select(document.elementFromPoint(x, y));
s.on("click")(s.datum());
}
function multiple_click() {
//onmousemove = function(e){console.log("mouse location:", e.clientX, e.clientY)}
if (cursorX >= ret_vw(15.25) && cursorX < ret_vw(42)) {
simulateClick(cursorX + ret_vw(28) - window.pageXOffset, cursorY - window.pageYOffset);
simulateClick(cursorX + ret_vw(56) - window.pageXOffset, cursorY - window.pageYOffset);
}
else if (cursorX >= ret_vw(43.25) && cursorX < ret_vw(70.25)) {
simulateClick(cursorX - ret_vw(28) - window.pageXOffset, cursorY - window.pageYOffset);
simulateClick(cursorX + ret_vw(28) - window.pageXOffset, cursorY - window.pageYOffset);
}
else if (cursorX >= ret_vw(71.25)) {
simulateClick(cursorX - ret_vw(28) - window.pageXOffset, cursorY - window.pageYOffset);
simulateClick(cursorX - ret_vw(56) - window.pageXOffset, cursorY - window.pageYOffset);
}
else
console.log("no , cursorX = " + cursorX + " , cursorY = " + cursorY + " vw = " + ret_vw(15.25));
}
它适用于下面的这个,如果我点击一个,它将点击另外两个标识为三个:
(无点击)
(点击)
但是我遇到了两个问题,如果我将其中一个缩进树推到窗外,它将不起作用,其次,我需要动态执行它,因为我不会总是有 3 个缩进的三个(我可以有两个,四个,五个识别的树...)
这是我的函数 multiple_click 不起作用的情况的图片(窗口外的树..):
谢谢你们的帮助!
(带有 d3.js 的识别树的来源:https ://bl.ocks.org/mbostock/1093025 )


