1

我是jqplot的新手,所以请原谅我的无知。我继承了一个生成 OHLC 图表的应用程序。每个系列都显示有一条从最小值到最大值的垂直线,平均值上有一个刻度线。定义了 jqplotClick 和 jqplotMouseMove 函数,它们都以:

   if (neighbor) {

我的问题是,当该系列仅包含一个数据点时 - 即 O == H == L == C (在这种情况下,它只用刻度线呈现,没有线),neighbor 为 null 并且单击和鼠标移动操作不要发生。我被要求对其进行修改,以便这些动作确实发生在这些单点系列上。

既然有数据点,为什么neighbor null?在这些情况下,我怎样才能使这项工作?

蒂亚!

这是对 dnagirl 帖子的更多信息。

这是传入 jqplot 的系列:

[
Array[4]
0: Array[6]
0: 1
1: 59.351
2: 62.621
3: 55.89
4: 59.351
5: Object
length: 6
__proto__: Array[0]
1: Array[6]
0: 2
1: 60.805
2: 60.805
3: 60.805
4: 60.805
5: Object
length: 6
__proto__: Array[0]
2: Array[6]
0: 3
1: 59.7385
2: 62.224
3: 57.947
4: 59.7385
5: Object
length: 6
__proto__: Array[0]
3: Array[6]
0: 4
1: 58.9365
2: 59.48
3: 58.393
4: 58.9365
5: Object
length: 6
__proto__: Array[0]
length: 4
__proto__: Array[0]
, 
Array[4]
0: Array[3]
0: 1
1: 1
2: Object
length: 3
__proto__: Array[0]
1: Array[3]
0: 2
1: 3
2: Object
length: 3
__proto__: Array[0]
2: Array[3]
0: 3
1: null
2: Object
length: 3
__proto__: Array[0]
3: Array[3]
0: 4
1: 2
2: Object
length: 3
__proto__: Array[0]
length: 4
__proto__: Array[0]
] 

这是图表的图片:

这是图表的图片

我已经将其追溯到 jqplot 中的 checkIntersection 函数。问题是,如果您有一个 OHLC 图表并且 O==H==L==C 邻居不会被拾取。在这个块中,if 永远不会为真:

else if (!r.hlc){
    var yp = s._yaxis.series_u2p;
    if (x >= p[0]-r._tickLength && x <= p[0]+r._tickLength && y >= yp(s.data[j][2]) && y <= yp(s.data[j][3])) {
        return {seriesIndex: i, pointIndex:j, gridData:p, data:s.data[j]};
    }
}

但是当 O、H 和 L 不相等时,它确实返回 true。

4

0 回答 0