我使用dragable
选项,使用constrainTo
限制拖动到单个轴,同时在所有系列上绘制图表。
series: [{
dragable: {
constrainTo: 'y',
}
}, {
dragable: {
constrainTo: 'y',
}
},
....
]
现在,我想要拖动点的新值和系列,以便我知道要更新哪个系列。我发现几个与我的需求无关的问题。
[jqplot]Get the point index when dragged
$('#chart1').bind('jqplotDataClick',function(ev, seriesIndex, pointIndex, data) {});
虽然问题是关于拖动,但给定的答案是针对使用click
的{{1}}事件,这在我的情况下不起作用
Jqplot - How do get array back from already created graph
jqplotDataClick
这是关于在拖动后获取整个系列数据。当您只有一个系列和有限的数据集时,这可能会很好。就我而言,我正在处理多个系列,每个系列包含近100个数据点。
Draggind data points and submitting values
这再次总结了上述两个,但有一个额外的选项$('#chart1').bind('jqplotDragStop',function(ev, seriesIndex, pointIndex, data) {
console.log(chart.series[0].data);
});
。
那么,我有什么方法可以获得
注意:使用postDrawSeries
时,回调函数中的constrainTo
会给出鼠标的功能,但会显示拖动的详细信息。防爆。假设我拖动pointIndex
并且我的鼠标是,(2, 100)
。当我在(10, 200)
上使用constrainTo
时,实际的点值为y-axis
,但我在(2, 200)
中获得的是鼠标位置,即pointIndex
。< / p>
您可以查看fiddle此处
答案 0 :(得分:3)
很遗憾,我无法找到任何官方文档来备份我的答案,但是通过查看Draggable source,似乎有一个jqplotDragStart
事件,其中包含参数seriesIndex
(包含拖动点的系列的索引)和pointIndex
(系列中拖动点的索引)。
我已经实现了这个事件处理程序,在启动拖动时将这些参数分配给Javascript变量:
var draggedPointValue;
var draggedSeriesValue;
...
$('#chart1').bind('jqplotDragStart',function(ev, seriesIndex, pointIndex, data) {
console.log('started dragging point ' + pointIndex);
console.log('started dragging series ' + seriesIndex);
draggedPointValue = pointIndex;
draggedSeriesValue = seriesIndex;
});
然后您的jqplotDragStop
函数可以访问它们:
$('#chart1').bind('jqplotDragStop',function(ev, seriesIndex, pointIndex, data) {
console.log(draggedPointValue);
console.log(draggedSeriesValue);
console.log(pointIndex);
//console.log(plot1.series);
});
你仍然需要获得新的&#39; y轴&#39;来自yaxis
函数的pointIndex
参数的jqplotDragStop
属性的值。
我已经创建了Fiddle来证明这一点。