2014-10-08 25 views
0

最近我一直在使用Dimple.js,并发现需要在某些情况下更改默认的工具提示行为。通过API进行此操作的方法描述为heredimple.js中的eventArgs看起来不完整

但是,传递到函数中的dimple.eventArgs对象应该包含所有关于触发事件的悬停元素的信息,但似乎缺少一些它应该包含的数据。 jsFiddle示例here。悬停点上的点显示接收到的eventArgs对象包含数据点的正确yValue属性,但xValue属性始终为空。

相反,注释掉从小提琴

s.getTooltipText = function (e) { 
    alert("Object xValue: " + e.xValue + " , Object yValue: " + e.yValue); 
    return [e.xValue, e.yValue]; 
}; 

的条线显示默认提示行为不会得到正确的x值属性。

如何在覆盖默认处理程序时访问这些值?

回答

1

默认提示处理器实际获取传递给您的覆盖方法相同的信息:https://github.com/PMSI-AlignAlytics/dimple/blob/master/src/objects/series/methods/getTooltipText.js

如果您正在寻找一样的格式的文本,你会从标准工具提示弄,你可以通过访问私有得到它用于获取标准工具提示的方法。您的重写getTooltipText函数将在系列的上下文中调用,因此this将具有任何可用的dimple.series方法(这是默认方法计算文本的方式)。

var rows = []; 
this.x._getTooltipText(rows, e); //x is your x dimple.axis object 

另请注意,'rows'将在该函数内部发生变异,并且不会返回任何内容。如果您正在查找用于计算其位置的原始数据点,则应在e.x上提供。仅当您手动使用series.addEventListener时,才会创建dimple.eventArgs对象。

+0

感谢您的回答。 e.x正是我需要访问的价值。此外,在给予eventArgs对象更详细的检查之后,在浏览器控制台中,看起来它包含文档中未列出的其他几个属性。也许这部分有点过时了。 – user3351605 2014-10-08 17:53:14

+0

它可能仍然是e.xValue为空的错误。我不确定这个(固定)错误是否相关:https://github.com/PMSI-AlignAlytics/dimple/issues/15 – ne8il 2014-10-08 17:56:58