Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用D3将鼠标悬停在单个图表上时,鼠标悬停在多个图表上_Javascript_Jquery_D3.js_Charts - Fatal编程技术网

Javascript 使用D3将鼠标悬停在单个图表上时,鼠标悬停在多个图表上

Javascript 使用D3将鼠标悬停在单个图表上时,鼠标悬停在多个图表上,javascript,jquery,d3.js,charts,Javascript,Jquery,D3.js,Charts,如果理解这个问题有任何困难,请提出建议。因此,我可以编辑问题并提供所需信息 当我在单个图表上悬停时,我想在多个图表上显示线条和工具提示 在下面的图表中,我能够在单个图表上得到线条,我希望线条应该一直延伸到X轴,并且在多个图表上也有高亮显示值的工具提示 下面是我一直工作到现在的一个例子 $(窗口)。加载(函数(){ var textareas$=$(“#图表区g”); textareas$.hide(); $('input[name=“Air”]”)。更改(函数(){ var elem$=$(本

如果理解这个问题有任何困难,请提出建议。因此,我可以编辑问题并提供所需信息

当我在单个图表上悬停时,我想在多个图表上显示线条和工具提示

在下面的图表中,我能够在单个图表上得到线条,我希望线条应该一直延伸到X轴,并且在多个图表上也有高亮显示值的工具提示

下面是我一直工作到现在的一个例子

$(窗口)。加载(函数(){
var textareas$=$(“#图表区g”);
textareas$.hide();
$('input[name=“Air”]”)。更改(函数(){
var elem$=$(本);
var correspelem$=textareas$.eq(elem$.val()-1);
if(elem$.val()==1){
选择(‘零售’,“#零售”);
}else if(elem$.val()==2){
选择(“气体”、“气体”);
}else if(elem$.val()==3){
选择(“用餐”、“用餐”);
}else{};
如果(elem$.is(':checked'))对应elem$.show();
else correspelm$.hide();
var lastSelectedChartIndex;
var chartAxis=document.queryselectoral('#chartarea.axis.x');
var selectedCharts=document.querySelectorAll(“#选项输入”).forEach((元素,索引)=>{
如果(元素已选中){
lastSelectedChartIndex=索引;
}
});
//console.log(lastSelectedChartIndex)
图表轴
.forEach((elem,index)=>(index!==chartAxis.length-1)和&!(index==lastSelectedChartIndex)?elem.style.display='none':elem.style.display='block')
});
});我更新了你,让你有了工作。我使用了VSCode并重新输入了代码,我希望它对您没有问题。我所做的是:

  • 在图表中创建事件调度程序
  • 在dispatcher事件上创建回调
  • 选择所有行
  • 定位
回调如下所示:

chart.onHover(function (x) {
    console.log(x);
    d3.selectAll('.hover-line')
        .select('line')
        .attr('x1', x)
        .attr('x2', x)
        .style('opacity', 1)
})

这是可行的,但我不喜欢每次都被重新选择的事实。调用
chart
时,应该可以直接订阅该事件,但我不能对它掉以轻心。

请提供如何解决该问题的提示。因此,我可以找出..请使用复选框显示您需要在所有svg上传播事件以实现此目的的图形。您可以在图表上创建一个
setLinePosition
方法,该方法将在回调中为其他图表提供值,然后根据收到的值为每个图表设置线条位置。如果您不介意,请提供setLinePosition的代码框架,谢谢!!是否有任何方法可以在鼠标悬停时将这两条线连接起来,并在鼠标悬停时将y值显示为工具提示或标签。